以下代码将获得执行另一个程序的命令行输出:
import subprocess
p = subprocess.Popen('ls', stdout=subprocess.PIPE)
print p.communicate()[0]
但是像wget,ffmpeg这样的程序会在命令行中显示进度条,并且一直更新它的值,如下所示:
12%[---] 105,691 50.6K / s eta 1小时43分钟
我尝试使用上面的代码来获取wget的输出,但是失败了。在wget完成执行之前它无法获得输出,输出为空字符串。