将子进程重定向为字符串变量

6 投票
2 回答
11300 浏览
提问于 2025-04-17 01:56

使用下面这个命令,它会输出 '640x360'

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

640x360

我该怎么做才能把这个输出的内容存到一个变量里,这样我就可以得到 x='640x360' 呢?谢谢。

2 个回答

4

在编程中,有时候我们会遇到一些问题,像是代码运行不正常或者出现错误。这些问题可能是因为我们没有正确理解某些概念或者没有按照正确的方式使用代码。

比如,有些人可能在使用某个编程语言时,不太清楚它的语法规则,或者不知道如何正确地调用某个函数。这就像是我们在学习一门新语言时,如果不懂语法,就很难说出正确的句子。

另外,调试代码也是一个重要的技能。调试就是找出代码中哪里出错了,并进行修正。就像是修理一辆车,我们需要先找到故障的地方,然后才能进行修理。

总之,编程需要不断学习和实践,遇到问题时不要气馁,慢慢来,总会找到解决办法的。

import subprocess
p = subprocess.Popen(["ls", "-al"], stdout=subprocess.PIPE)
out, err = p.communicate()
print out
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)

撰写回答