擅长:python、mysql、java
<p>Thomas完美答案的一个可能改进是让Linux和OSX也尝试打开端口,并只返回那些可以打开的端口。这是因为Linux至少在/dev/中将大量端口列为文件,而这些文件与任何东西都没有连接。如果您在终端中运行,/dev/tty是您在其中工作的终端,打开和关闭它可能会使您的命令行出错,因此glob被设计为不这样做。代码:</p>
<pre><code> # ... Windows code unchanged ...
elif sys.platform.startswith ('linux'):
temp_list = glob.glob ('/dev/tty[A-Za-z]*')
result = []
for a_port in temp_list:
try:
s = serial.Serial(a_port)
s.close()
result.append(a_port)
except serial.SerialException:
pass
return result
</code></pre>
<p>托马斯代码的修改只在Ubuntu 14.04上测试过。</p>