我正在尝试从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。
用途:
x = subprocess.run(["sh", "/path/to/script/myscript.bash"], capture_output=True)