Что такое межплатформенный -метод перечисления последовательных портов в Python (, включая виртуальные порты )?

Примечание:Я использую Python 2.7 и pySerial для последовательной связи.

Я нашел эту статью, в которой перечислены два способа:http://www.zaber.com/wiki/Software/Python#Displaying_a_list_of_available_serial_ports

Этот метод работает в Windows и Linux, но иногда пропускает виртуальные порты в 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)

. А этот работает только в Linux, но включает в себя виртуальные порты:

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

Я полагаю, что я мог бы определить платформу, чтобы использовать второй метод (, который включает виртуальные порты )при работе в Linux, и первый метод при работе под Windows, но как насчет Mac?

Как мне перечислить последовательные порты (и виртуальные )независимо от платформы?

Изменить

Я нашел несколько подходящих вопросов:

31
задан Community 23 May 2017 в 12:25
поделиться