首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:如果URL文件中存在特定字符串,则打印一行

Python:如果URL文件中存在特定字符串,则打印一行
EN

Stack Overflow用户
提问于 2017-03-27 18:34:03
回答 1查看 358关注 0票数 0

我正在用Python编写一个脚本,它应该打印到子配置文件(01.m3u8、02.m3u8、108.m3u8等)的链接。这是我的代码:

代码语言:javascript
复制
#!/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清单文件。下面是它的语法:

代码语言:javascript
复制
#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

当我运行我的脚本时,输出是:

代码语言:javascript
复制
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

我知道目前我打印的是整行代码,但是为什么它会报告:

代码语言:javascript
复制
05.
m3u8

而不是05.m3u8

EN

回答 1

Stack Overflow用户

发布于 2017-03-27 19:35:12

显然,Python语言中有一个m3u8库,它可以做我正在寻找的事情:

代码语言:javascript
复制
#!/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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43044045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档