Python从URL到文件扩展名

问题描述 投票:0回答:1

我已经上传了很多播放列表文件here

我写的代码是:

path = 'playlist_files/samples'
files = os.listdir(path)
for name in files:
    filename = "http://users.sch.gr/apappas/temp/"+name
    r = requests.get(filename, verify=False, timeout=5)
    print(filename+" "+r.headers['content-type'])

输出为:

http://users.sch.gr/apappas/temp/test03.pls application/pls+xml
http://users.sch.gr/apappas/temp/test05.m3u audio/x-mpegurl
http://users.sch.gr/apappas/temp/test04.smil application/smil+xml
http://users.sch.gr/apappas/temp/test05.wpl application/vnd.ms-wpl
http://users.sch.gr/apappas/temp/test01.pla text/plain
http://users.sch.gr/apappas/temp/test02.ram audio/x-pn-realaudio
http://users.sch.gr/apappas/temp/test01.hypetape text/xml
http://users.sch.gr/apappas/temp/test01.rss application/rss+xml
http://users.sch.gr/apappas/temp/test03.asx video/x-ms-asf
http://users.sch.gr/apappas/temp/test02.mpcpl text/plain
http://users.sch.gr/apappas/temp/test01.xspf application/x-xspf+xml
http://users.sch.gr/apappas/temp/test02.rmp text/plain
http://users.sch.gr/apappas/temp/test01.kpl text/plain
http://users.sch.gr/apappas/temp/test03.wpl application/vnd.ms-wpl
http://users.sch.gr/apappas/temp/test01.wax audio/x-ms-wax
http://users.sch.gr/apappas/temp/test01.pls application/pls+xml
http://users.sch.gr/apappas/temp/test02.asx video/x-ms-asf
http://users.sch.gr/apappas/temp/test01.wpl application/vnd.ms-wpl
http://users.sch.gr/apappas/temp/test06.smil application/smil+xml
http://users.sch.gr/apappas/temp/test06.asx video/x-ms-asf
http://users.sch.gr/apappas/temp/test02.m3u audio/x-mpegurl
http://users.sch.gr/apappas/temp/test01.b4s text/xml
http://users.sch.gr/apappas/temp/test01.rmp text/xml
http://users.sch.gr/apappas/temp/test02.wpl application/vnd.ms-wpl
http://users.sch.gr/apappas/temp/test06.m3u audio/x-mpegurl
http://users.sch.gr/apappas/temp/test01.smil application/smil+xml
http://users.sch.gr/apappas/temp/test04.m3u audio/x-mpegurl
http://users.sch.gr/apappas/temp/test02.atom application/atom+xml
http://users.sch.gr/apappas/temp/test02.rss application/rss+xml
http://users.sch.gr/apappas/temp/test04.rmp text/xml
http://users.sch.gr/apappas/temp/test04.pls application/pls+xml
http://users.sch.gr/apappas/temp/test01.plist text/xml
http://users.sch.gr/apappas/temp/test03.mpcpl text/plain
http://users.sch.gr/apappas/temp/test02.plp text/plain
http://users.sch.gr/apappas/temp/test05.smil application/smil+xml
http://users.sch.gr/apappas/temp/test01.plp text/plain
http://users.sch.gr/apappas/temp/test06.rss application/rss+xml
http://users.sch.gr/apappas/temp/test01.asx video/x-ms-asf
http://users.sch.gr/apappas/temp/test01.ram audio/x-pn-realaudio
http://users.sch.gr/apappas/temp/test04.rss application/rss+xml
http://users.sch.gr/apappas/temp/test01.atom application/atom+xml
http://users.sch.gr/apappas/temp/test03.rmp text/xml
http://users.sch.gr/apappas/temp/test05.pls application/pls+xml
http://users.sch.gr/apappas/temp/test01.wvx video/x-ms-wvx
http://users.sch.gr/apappas/temp/test01.m3u audio/x-mpegurl
http://users.sch.gr/apappas/temp/test01.xml text/xml
http://users.sch.gr/apappas/temp/test02.smil application/smil+xml
http://users.sch.gr/apappas/temp/test01.mpcpl text/plain
http://users.sch.gr/apappas/temp/test04.wpl application/vnd.ms-wpl
http://users.sch.gr/apappas/temp/test04.mpcpl text/plain
http://users.sch.gr/apappas/temp/test01.m3u8 application/vnd.apple.mpegurl
http://users.sch.gr/apappas/temp/test03.rss application/rss+xml
http://users.sch.gr/apappas/temp/test02.pls application/pls+xml
http://users.sch.gr/apappas/temp/test07.smil application/smil+xml
http://users.sch.gr/apappas/temp/test04.asx video/x-ms-asf
http://users.sch.gr/apappas/temp/test02.xspf application/x-xspf+xml
http://users.sch.gr/apappas/temp/test05.rss application/rss+xml
http://users.sch.gr/apappas/temp/test03.m3u audio/x-mpegurl
http://users.sch.gr/apappas/temp/test03.smil application/smil+xml
http://users.sch.gr/apappas/temp/test05.asx video/x-ms-asf
http://users.sch.gr/apappas/temp/test02.plist text/xml
http://users.sch.gr/apappas/temp/test08.smil application/smil+xml
http://users.sch.gr/apappas/temp/test02.b4s text/xml
http://users.sch.gr/apappas/temp/test07.asx video/x-ms-asf

现在我要从内容类型或从下载的文件中提取扩展名。

例如:http://www.example.com/index.php?file=22 --->内容类型:some_content_type-> file_extension =?

有可能吗?

编辑:filename.split(".")[-1]不是有效答案,因为对于http://www.example.com/index.php?file=22,扩展名将为php?file = 22 false

python urllib content-type
1个回答
0
投票

您可以从这样的文件名中获取它:

from urllib.parse import urlparse
import os

url = "http://www.example.com/index.php.gz?file=22"
clean_path = urlparse(url).path
extension = os.path.splitext(clean_path)[1]
© www.soinside.com 2019 - 2024. All rights reserved.