如何正确使用子进程从chgport读入输入?

2024-04-19 04:29:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两种不同类型的Arduino Mega 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'))

Tags: run命令true类型键入devicestdout模式
1条回答
网友
1楼 · 发布于 2024-04-19 04:29:12

嗨,我放弃使用子进程,所以我使用操作系统。下面的代码有效。首先我重定向

从模式输出到一个文件,然后读取该文件

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])

相关问题 更多 >