鱼C论坛

 找回密码
 立即注册
查看: 867|回复: 2

下载文件前能先获取文件的大小信息吗

[复制链接]
发表于 2018-9-28 11:17:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Python 能在下载文件前先获取文件的大小信息吗?比如用 Python http 请求库
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-28 11:39:09 | 显示全部楼层
import requests
url='https://fishc.com.cn/ucenter/data/avatar/000/47/12/88_avatar_middle.jpg'
res=requests.get(url)
print(res.headers['content-length'])
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-28 12:12:26 | 显示全部楼层

已经解决:使用 head 请求,仅获取响应头信息,其中的 Content-Length 字段对应的值就是文件的大小
>>> ubuntu_url = 'http://mirrors.nju.edu.cn/ubuntu-releases/18.04.1/ubuntu-18.04.1-desktop-amd64.iso'
>>> resp = requests.head(ubuntu_url)
>>> resp.headers
{'Server': 'nginx/1.15.2', 'Date': 'Fri, 28 Sep 2018 03:47:39 GMT', 'Content-Type': 'application/octet-stream', 'Content-Length': '1953349632', 'Last-Modified': 'Wed, 25 Jul 2018 03:22:14 GMT', 'Connection': 'keep-alive', 'ETag': '"5b57ece6-746dc000"', 'Strict-Transport-Security': 'max-age=31536000; preload', 'Accept-Ranges': 'bytes'}
>>> resp.headers.get('Content-Length')
'1953349632'
>>> int(resp.headers.get('Content-Length'))/1024**3
1.8191986083984375
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 10:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表