我有两种不同类型的Arduino兆2560个板。使用命令模式和另一个chgport可以很容易地检测到一个。我没有问题,建立子进程来运行命令模式。当我设置subprocess.run
来运行命令chgport
时,无法获得与在命令提示符下手动键入chgport
所得到的相同答案。
我在Windows命令行中输入chgport
并得到:
COM5 = \Device\Serial2
我建立的Python 3.7.2命令:
subprocess.run(["chgport"],shell=True,stdout=subprocess.PIPE)
我得到了这个输出,这不是我期望的:
CompletedProcess(args=['chgport'], returncode=1, stdout=b'')
我希望:
stdout=b'COM5 = \Device\Serial2'
我尝试过的代码:
a=subprocess.run(["chgport"],shell=True,stdout=subprocess.PIPE)
print(a.stdout.decode('utf-8'))
答案 0 :(得分:0)
import os
import sys
dir=os.popen("echo %cd%").readlines()[0].strip("\n")+"\\"
os.popen("cd "+dir+ """&& mode>"""+dir+"junk")
com = os.popen("more "+dir+"junk | findstr COM""").readlines()
os.popen("del "+dir+"junk")
port=com[0]
first=port.find("COM")
second=port.find(":")
print(port[first:second])