python getoutput()等价于子进程 [英] python getoutput() equivalent in subprocess

查看:162
本文介绍了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()等价于子进程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆