zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Python 网络教程大全之 05 如何获取url下载文件的大小?

Python文件下载 如何 获取 大全 大小 url
2023-09-11 14:18:32 时间

实战需求

如何获取url下载文件名称?

解决方案

为了URL 中提取文件名,我们可以编写一个段程序来获取反斜杠 (/) 之后的最后一个字符串。

import requests
url = 'https://ai2opencode.com/favicon.ico'
if url.find('/'):
	print url.rsplit('/', 1)[1]

这将在某些情况下正确给出文件名。但是,有时 url 中不存在文件名信息。例如,类似http://ai2opencode.com. 在这种情况下,Content-Disposition标题将包含文件名信息。这是获取它的方法。

import requests
import re

def get_filename_from_cd(cd):
    """
    Get filename from content-disposition
    """
    if not cd:
        return None
    fname = re.findall('filename=(.+)', cd)
    if len(fname) == 0:
        return None
    return fname[0]


url = 'https://ai2opencode.com/favicon.ico'
r = requests.get(url, allow_redirects=True)
filename = get_filename_from_cd(r.headers.get('content-disposition'))
open(filename, 'wb').write(r.content)