在尝试使用subprocess.Popen时,我无法获得bash输出,并收到以下错误:
SyntaxError:无效语法
代码是:
import subprocess
# Graphic-card
out = subprocess.Popen(['lspci', '|', 'grep', ''NVIDIA'''],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
stdout,stderr = out.communicate()
print(stdout)发布于 2019-08-11 21:46:19
|不是命令参数;它是连接两个命令的外壳语法。对于此命令,您需要让shell处理管道:
out = subprocess.Popen("lspci | grep NVIDIA", shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)或者创建两个Popen实例并自行连接:
pre_out = subprocess.Popen(["lspci"], stdout=subprocess.PIPE)
out = subprocess.Popen(["grep", "NVIDIA"], stdin=pre_out.stdout, stderr=subprocess.STDOUT)https://stackoverflow.com/questions/57450041
复制相似问题