Jaka jest wieloplatformowa metoda wyliczania portów szeregowych w Pythonie (w tym portów wirtualnych)?

Uwaga: Używam Pythona 2.7 i pySerial do komunikacji szeregowej.

Znalazłem ten artykuł, który wymienia dwa sposoby:http://www.zaber.com/wiki/Software/Python#Displaying_a_list_of_available_serial_ports

Ta metoda działa w systemach Windows i Linux, ale czasami pomija porty wirtualne w systemie Linux:

import serial

def scan():
   # scan for available ports. return a list of tuples (num, name)
   available = []
   for i in range(256):
       try:
           s = serial.Serial(i)
           available.append( (i, s.portstr))
           s.close()
       except serial.SerialException:
           pass
   return available

print "Found ports:"
for n,s in scan(): print "(%d) %s" % (n,s)

A ten działa tylko na Linuksie, ale zawiera porty wirtualne:

import serial, glob

def scan():
   # scan for available ports. return a list of device names.
   return glob.glob('/dev/ttyS*') + glob.glob('/dev/ttyUSB*')

print "Found ports:"
for name in scan(): print name

Przypuszczam, że mogę wykonać wykrywanie platformy, aby użyć drugiej metody (tej, która zawiera porty wirtualne), gdy działa na Linuksie, i pierwszej metody podczas uruchamiania systemu Windows, ale co z komputerem Mac?

Jak wyliczyć porty szeregowe (również wirtualne) niezależnie od platformy?

Edytować

Znalazłem kilka istotnych pytań:

MacPython: programowe znajdowanie wszystkich portów szeregowychMacOS: jaka jest różnica między /dev/tty.* a /dev/cu.*?Jak znaleźć wszystkie urządzenia szeregowe (ttyS, ttyUSB, ..) w systemie Linux bez ich otwierania?

questionAnswers(4)

yourAnswerToTheQuestion