【发布时间】:2010-03-22 16:31:27
【问题描述】:
我正在尝试使用subprocess.Popen 构建一个序列来获取视频文件的持续时间。我已经搜索了 3 天,在网上找不到任何关于此代码不起作用的原因,但它一直给我一个空白结果:
import sys
import os
import subprocess
def main():
the_file = "/Volumes/Footage/Acura/MDX/2001/Crash Test/01 Acura MDX Front Crash.mov"
ffmpeg = subprocess.Popen(['/opt/local/bin/ffmpeg', '-i', the_file], stdout = subprocess.PIPE, )
grep = subprocess.Popen(['grep', 'Duration'], stdin = subprocess.PIPE, stdout = subprocess.PIPE, )
cut = subprocess.Popen(['cut', '-d', ' ', '-f', '4'], stdin = subprocess.PIPE, stdout = subprocess.PIPE, )
sed = subprocess.Popen(['sed', 's/,//'], stdin = subprocess.PIPE, stdout = subprocess.PIPE, )
duration = sed.communicate()
print duration
if __name__ == '__main__':
main()
【问题讨论】:
-
为什么要使用 grep、cut 和 sed 来解析输出而不是使用 Python 内置函数?
-
subprocess.PIPE 是你的敌人
标签: python subprocess