Linux和Python:自动检测Arduino串口

hao*_*ike 4 python macos serial-port arduino

我有一个问题是使用Mac/Linux在Python中自动检测我的Arduino串口.

我知道一个有效的shell命令来查找端口; 因为Arduino串口几乎总是以它开头tty.usbmodem,你可以找到ls /dev | grep tty.usbmodem应该返回类似的串口tty.usbmodem262141.

但是,我对如何从我的Python代码调用此shell命令感到困惑.我试过这个:

p = "/dev/" + str(subprocess.Popen('ls /dev | grep tty.usbmodem', shell=True).stdout)
Run Code Online (Sandbox Code Playgroud)

应该p成为哪个/dev/tty.usbmodem262141.

但是,在我得到的那一刻/dev/None.


如何修改我的shell脚本调用以返回正确的字符串?我尝试使用几个命令来调用shell脚本,但没有一个有效.

cha*_*ite 8

首先,如果你使用的是shell,你可以使用glob(*),这样你的命令就会变成ls /dev/tty.usbmodem*.

接下来,您甚至不必调用shell命令在Python中使用glob!

请考虑以下代码:

import glob

print(glob.glob("/dev/tty.usbmodem*"))
Run Code Online (Sandbox Code Playgroud)

  • @mr_schlomo:你确定你有这些`tty.usbmodem`文件吗? (2认同)