2017-03-27 39 views
0

我正在用Python編寫一個腳本,該腳本應打印指向子配置文件(01.m3u8,02.m3u8,108.m3u8等)的鏈接。 。這是我的代碼:Python:如果URL文件中存在特定字符串,則打印一行

#!/usr/bin/env python 

from urllib import quote 
import requests 

input_file = quote(raw_input("Please enter the input file path: "), safe=':''/') 

read_file = requests.get(input_file, verify = False) 
for line in read_file: 
     if "m3u8" in line: 
       print line 

輸入流是一個HLS清單文件。這是它的語法:

#EXTM3U 
#EXT-X-VERSION:4 
#EXT-X-INDEPENDENT-SEGMENTS 
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="deu_1",DEFAULT=YES,AUTOSELECT=YES,LANGUAGE="deu",URI="06.m3u8" 
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="deu_2",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="deu",URI="07.m3u8" 
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="DEU_32_149",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="DEU",URI="108.m3u8" 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=206701,RESOLUTION=320x180,FRAME-RATE=12.500,AUDIO="audio",SUBTITLES="subs" 
01.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=681504,RESOLUTION=320x180,FRAME-RATE=25.000,AUDIO="audio",SUBTITLES="subs" 
02.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1243460,RESOLUTION=480x270,FRAME-RATE=25.000,AUDIO="audio",SUBTITLES="subs" 
03.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1917808,RESOLUTION=960x540,FRAME-RATE=25.000,AUDIO="audio",SUBTITLES="subs" 
04.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3532769,RESOLUTION=1280x720,FRAME-RATE=50.000,AUDIO="audio",SUBTITLES="subs" 
05.m3u8 

當我運行我的腳本輸出:

LECT=YES,LANGUAGE="deu",URI="06.m3u8" 
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",NAME="deu_2",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE= 
"deu",URI="07.m3u8" 
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="DEU_32_149",DEFAULT=NO,AUTOSELECT=YES,LANGUAGE="DEU",URI= 
"108.m3u8" 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=206701,RESOLUTION=320x180,FRAME-RATE=12.500,AUDIO="audio",SUBTITLES="subs" 

01.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=681504,RESOLUTION=320x180,FRAME-RATE=25.000,AUDIO="audio",SUBTITLES="subs" 
0 
2.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1243460,RESOLUTION=480x270,FRAME-RATE=25.000,AUDIO="audio",SUBTITLES="subs" 
03 
.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1917808,RESOLUTION=960x540,FRAME-RATE=25.000,AUDIO="audio",SUBTITLES="subs" 
04. 
m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=3532769,RESOLUTION=1280x720,FRAME-RATE=50.000,AUDIO="audio",SUBTITLES="subs" 
05. 
m3u8 

我知道,目前我打印整條生產線,但爲什麼那麼它會報告:

05. 
m3u8 

,而不是05.m3u8

+2

您是否嘗試過enlrage終端似乎終端可能是小展現整條線 – Eliethesaiyan

回答

0

顯然是有M3U8庫在Python可以做的正是我要尋找:

#!/usr/bin/env python 
from urllib import quote 
import m3u8 

input_file = quote(raw_input("Please enter the input file path: "), safe=':''/') 

m3u8_main = m3u8.load(input_file) 
for playlist in m3u8_main.playlists: 
     print playlist.uri 

完整的文檔可以在這裏找到:m3u8 library

相關問題