我正在尝试编写一个程序来扫描视频,查找音频和字幕可用的语言,然后使用这些结果进行输入。
目前,我正在使用以下命令生成输出:
with open('output.txt', 'wt') as output_f:
p = subprocess.Popen(command, stdout=output_f, stderr=output_f)
这是我需要的扫描文本。
+ audio tracks:
+ 1, Japanese (aac) (2.0 ch) (iso639-2: jpn)
+ subtitle tracks:
+ 1, English (iso639-2: eng) (Text)(SSA)
所以我需要找出日语前面的数字是什么,但只有在它位于“音轨”之后
类似地,我需要找到英文前面的数字,但只有在“字幕轨道”后面的数字
我很确定我需要使用正则表达式来执行此操作,但我不知道从哪里开始。
最佳答案
这里你真的不需要正则表达式 - 无论如何,对我来说使用其中一个似乎太复杂了。
这是一些常规解析:
with open('output.txt', 'wt') as output_f:
parseTracks = False
lines = tuple(output_f)
for line in lines:
if 'audio tracks' in line:
parseTracks = True
if parseTracks:
if 'Japanese' in line:
theNumber = int(''.join([char for char in line if char in '1234567890']))
字幕也是如此。
关于python - 在 Python 中使用正则表达式搜索并返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16185042/