Примечание:Я использую 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?
Как мне перечислить последовательные порты (и виртуальные )независимо от платформы?
Изменить
Я нашел несколько подходящих вопросов: