Available formats:
37 : mp4 [1080x1920]
46 : webm [1080x1920]
22 : mp4 [720x1280]
45 : webm [720x1280]
35 : flv [480x854]
44 : webm [480x854]
34 : flv [360x640]
18 : mp4 [360x640]
43 : webm [360x640]
5 : flv [240x400]
17 : mp4 [144x176]
这是youtube-dl -F url
的输出。我正在编写一个脚本,我需要检查视频是否具有格式18。
如何在列表中提取第一列?然后很容易检查。
答案 0 :(得分:0)
这样的事情,考虑到数据存储在文本文件中:
In [15]: with open("abc") as f:
....: for line in f:
....: spl=line.split()
....: if '18' in spl:
....: print line
....: break
....:
18 : mp4 [360x640]
或者如果数据存储在字符串中:
In [16]: strs="""Available formats:
....: 37 : mp4 [1080x1920]
....: 46 : webm [1080x1920]
....: 22 : mp4 [720x1280]
....: 45 : webm [720x1280]
....: 35 : flv [480x854]
....: 44 : webm [480x854]
....: 34 : flv [360x640]
....: 18 : mp4 [360x640]
....: 43 : webm [360x640]
....: 5 : flv [240x400]
....: 17 : mp4 [144x176]"""
....:
In [17]: for line in strs.splitlines():
....: spl=line.split()
....: if '18' in spl:
....: print line
....: break
....:
18 : mp4 [360x640]
答案 1 :(得分:0)
如果这是简单列表,请执行以下操作:
答案 2 :(得分:0)
如果您只想知道某种格式是否存在,您只需检查一行是否以'18'开头:
format_exisits = False
for line in input_file:
if line.startswith('18 '):
format_exisits = True
break
print(format_exists)
答案 3 :(得分:0)
使用subprocess来获取python和split / strip的输出。
import subprocess
cmd = ["youtube-dl" "-F" "url"]
output = subprocess.check_output(cmd)
formats = {format[0].strip():format[1].strip() for format in [format.split(":") for format in output.split("\n")[1:]]}
"17" in formats