注: Python 2.7 と、シリアル通信用の pySerial を使用しています。
2 つの方法をリストしたこの記事を見つけました: 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 で実行している場合は 2 番目の方法 (仮想ポートを含む方法) を使用し、Windows を実行している場合は 1 番目の方法を使用してプラットフォーム検出を行うことができると思いますが、Mac の場合はどうでしょうか?
プラットフォームに関係なく、シリアルポート (仮想も) を列挙するにはどうすればよいですか?
編集
関連する質問がいくつか見つかりました。