Python子进程以交互方式工作,但不在脚本中工作

问题描述 投票:0回答:1

我正在尝试从python执行shell脚本并捕获输出。

我使用以下几行:

x = subprocess.run(["sh", "/path/to/script/myscript.bash"], stdout=subprocess.PIPE)
print(x.stdout.decode('utf8'))

这在python交互模式下运行时效果很好,但是当在python脚本中执行时它只是挂起,我必须使用ctrl + Z杀死python脚本。我想念什么?

过去使用python 2.7时,我只使用了像这样的一行:

x = subprocess.Popen(args='sh /path/to/script/myscript.bash', stdout=subprocess.PIPE, shell=True) 
scriptOutput = str(x.communicate()[0])

这似乎不适用于我正在运行的python 3.6。

python subprocess sh
1个回答
0
投票

用途:

x = subprocess.run(["sh", "/path/to/script/myscript.bash"], capture_output=True)
© www.soinside.com 2019 - 2024. All rights reserved.