0
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 かどうかを確認する必要があります。

リストの最初の列を抽出するにはどうすればよいですか? それなら簡単にチェックできます。

4

4 に答える 4

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]
于 2013-04-27T15:44:29.603 に答える
0

これが単純なリストの場合は、次のようにします。

  1. 一度に 1 行ずつ文字列として読み取る
  2. コロンで文字列を分割します。
  3. 最初のアイテムをトリム
  4. アイテムを数値として解析する
于 2013-04-27T15:45:05.823 に答える
0

特定の形式が存在するかどうかだけを知りたい場合は、行が「18」で始まるかどうかを確認するだけです。

format_exisits = False

for line in input_file:
    if line.startswith('18 '):
        format_exisits = True
        break

print(format_exists)
于 2013-04-27T15:45:10.263 に答える