如何从标题中的Content-Disposition获取文件名
发布于 2021-01-29 15:27:28
我正在使用Mechanize下载文件,响应头中有一个字符串:
Content-Disposition: attachment; filename=myfilename.txt
是否有一种快速的标准方法来获取文件名值?我现在想到的是:
filename = f[1]['Content-Disposition'].split('; ')[1].replace('filename=', '')
但这似乎是一种快速的解决方案。
关注者
0
被浏览
196
1 个回答
-
首先使用机械化获取标头的值,然后使用内置的cgi模块解析标头。
展示:
>>> import mechanize >>> browser = mechanize.Browser() >>> response = browser.open('http://example.com/your/url') >>> info = response.info() >>> header = info.getheader('Content-Disposition') >>> header 'attachment; filename=myfilename.txt'
然后可以解析标头值:
>>> import cgi >>> value, params = cgi.parse_header(header) >>> value 'attachment' >>> params {'filename': 'myfilename.txt'}
params
是一个简单的字典,所以params['filename']
您需要什么。文件名是否用引号引起来都没有关系。