如何用Python3获取URL文件大小?下面是一些示例代码和技巧帮助您获得准确的文件大小。
示例代码
1. 使用urllib库
import urllib.request
def get_file_size(url):
headers = urllib.request.urlopen(url).headers
if "Content-Length" in headers:
return int(headers["Content-Length"])
else:
raise Exception("Can't determine file size.")
这段代码首先使用urllib.request打开URL,并访问响应的headers,这是一个Python字典。如果"Content-Length"存在于headers中,则说明服务器返回了文件大小,该值存储在Content-Length字段中并以字节为单位。 如果"Content-Length"不存在,则抛出异常。
2. 使用requests库
import requests
def get_file_size(url):
resp = requests.head(url, allow_redirects=True)
headers = resp.headers
if "Content-Length" in headers:
return int(headers["Content-Length"])
else:
raise Exception("Can't determine file size.")
这段代码使用requests库的head方法。它将发送HTTP HEAD请求并返回响应的headers。如果"Content-Length"存在于headers中,则说明服务器返回了文件大小,该值存储在Content-Length字段中并以字节为单位。 如果"Content-Length"不存在,则抛出异常。
总结
获取URL文件大小的代码很简单,你可以使用Python的urllib或requests库。 如果HTTP响应中包含Content-Length头,则可以使用该文件大小,否则代码将抛出异常。如果一直无法获取文件大小,则可能需要进一步跟踪与上述headers相关的信息。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3获取url文件大小示例代码 - Python技术站