Get USB ID of a serial port through pyserial?

Tim Golden mail at timgolden.me.uk
Thu Mar 31 10:54:49 EDT 2011


On 30/03/2011 20:01, John Nagle wrote:
> Is there some way to get the USB ID of a serial port through
> pyserial on Linux and/or Windows? USB serial port devices have
> device names determined by when they were plugged in. So, if
> you have more than one USB serial device, you need the USB device's
> built-in ID to figure out what's out there.
>
> Is there a way to get that info portably?

I appreciate that you're after a portable solution and are
using pyserial, but since no-one's responded (publicly), then
let me at least offer a WMI solution which should work on
Windows:

<code>
import win32com.client

wmi = win32com.client.GetObject ("winmgmts:")
for usb in wmi.InstancesOf ("Win32_USBHub"):
   print usb.DeviceID

</code>

Now, that shows that WMI can "see" USB devices, but to
get from that database record to something more physical,
such as a disk drive or a COM port usually involves a
merry dance across the WMI namespace, essentially joining
to successive entity classes until you reach the one you
want.

If you think this might be worth pursuing for your case,
feel free to get back and ask.

TJG



More information about the Python-list mailing list