小编典典

子进程中的python getoutput()等效项

python

我想从某些shell命令(例如lsdfpython脚本)中获取输出。我看到commands.getoutput('ls')已弃用,但subprocess.call('ls')只会得到返回代码。

我希望有一些简单的解决方案。


阅读 242

收藏
2020-12-20

共1个答案

小编典典

使用 subprocess.Popen

import subprocess
process = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = process.communicate()
print(out)

请注意,通信将阻塞,直到该过程终止。如果在终止之前需要输出,则可以使用 process.stdout.readline()
。有关更多信息,请参见文档

2020-12-20