2

在 powershell 中使用以下内容会产生预期的输出01:22:02:03

 MediaInfo --Language=raw --Full --Inform="Video;%Duration/String4%" filename

我的以下 python 2.7 脚本始终为每条元数据提供完整的 mediainfo 输出,而不仅仅是我指定的持续时间字符串。我尝试转义分号,但它没有效果。我究竟做错了什么?

import sys
import subprocess
filename = sys.argv[1]
test = subprocess.check_output(['MediaInfo', '--Language=raw', '--Full', '--inform="Video;%Duration/String4%"', filename])
print test
4

1 回答 1

2

去掉参数中的双引号--Inform。我可以用这段代码重现你的问题:

import subprocess

args =  [
    'mediainfo',
    '--Language=raw',
    '--Full',
    '--inform="Video;%Duration/String4%"',
    'tests/reference.mp4'
]

bad_output = subprocess.check_output(args)
line_count_bad = len(bad_output.splitlines())

args[3] = args[3].replace('"', '')

good_output = subprocess.check_output(args)
line_count_good = len(good_output.splitlines())

print(line_count_bad, line_count_good, sep='\t')
print(good_output)

输出是:

204 1
b'00:00:07:08\n'
于 2015-11-07T23:58:33.617 回答