将子流程重定向到变量作为字符串

时间:2011-09-09 21:18:38

标签: python

使用以下命令打印“640x360”

>>> command = subprocess.call(['mediainfo', '--Inform=Video;%Width%x%Height%', 
'/Users/deemarklit/Desktop/1video.mp4'])

640x360

如何设置一个等于输出字符串的变量,这样我才能获得x='640x360'?谢谢。

2 个答案:

答案 0 :(得分:13)

如果您使用的是2.7,则可以使用subprocess.check_output():

>>> import subprocess
>>> output = subprocess.check_output(['echo', '640x360'])
>>> print output
640x360

如果不是:

>>> p = subprocess.Popen(['echo', '640x360'], stdout=subprocess.PIPE)
>>> p.communicate()
('640x360\n', None)

答案 1 :(得分:4)

import subprocess
p = subprocess.Popen(["ls", "-al"], stdout=subprocess.PIPE)
out, err = p.communicate()
print out