【发布时间】:2018-11-05 19:25:02
【问题描述】:
我正在尝试在这样的 python 脚本中运行多个 UNIX 命令
import subprocess
cmds = ['sleep 3', 'uptime','time ls -l /']
p = subprocess.Popen(cmds,stdout=subprocess.PIPE,shell=True)
while p.poll() is None:
time.sleep(0.5)
tempdata = p.stdout.read()
print(tempdata)
但是我的输出不包含所有输出并且似乎没有运行所有命令。设置 shell=False 也会导致错误。
Traceback (most recent call last):
File "task1.py", line 32, in ?
p = subprocess.Popen(commands,stdout=subprocess.PIPE,stderr=subprocess.PIPE,shell=False)
File "/usr/lib64/python36/subprocess.py", line 550, in __init__
errread, errwrite)
File "/usr/lib64/python36/subprocess.py", line 996, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
【问题讨论】:
标签: python python-3.x unix subprocess popen