本文介绍了python getoutput()等价于子进程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想从python脚本中的 ls
或 df
等一些shell命令获取输出。我看到 commands.getoutput('ls')
已过时,但 subprocess.call('ls')
解决方案
我希望有一些简单的解决方案。 / div>
使用 subprocess.Popen :
import subprocess
process = subprocess.Popen(['ls','-a'],stdout = subprocess.PIPE)
out,err = process.communicate()
print(out)
注意,在进程终止之前,通信块。如果在终止前需要输出,可以使用 process.stdout.readline()。有关详情,请参阅。 / p>
I want to get the output from some shell commands like ls
or df
in a python script. I see that commands.getoutput('ls')
is deprecated but subprocess.call('ls')
will only get me the return code.
I'll hope there is some simple solution.
解决方案
Use subprocess.Popen:
import subprocess
process = subprocess.Popen(['ls', '-a'], stdout=subprocess.PIPE)
out, err = process.communicate()
print(out)
Note that communicate blocks until the process terminates. You could use process.stdout.readline() if you need the output before it terminates. For more information see the documentation.
这篇关于python getoutput()等价于子进程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!