我想从某些shell命令(例如ls或dfpython脚本)中获取输出。我看到commands.getoutput('ls')已弃用,但subprocess.call('ls')只会得到返回代码。
ls
df
commands.getoutput('ls')
subprocess.call('ls')
我希望有一些简单的解决方案。
使用 subprocess.Popen :
import subprocess process = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = process.communicate() print(out)
请注意,通信将阻塞,直到该过程终止。如果在终止之前需要输出,则可以使用 process.stdout.readline() 。有关更多信息,请参见文档。