You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用requests模块下载RAR文件出现文件头损坏问题求助

问题分析与解决

你的代码存在致命问题:每次循环都以wb模式打开文件,这会覆盖之前写入的内容,最终文件只保留了最后一个chunk的数据,自然会导致RAR头损坏。

修正后的代码

import requests

KALI = "URL CENSORED"
file_path = "your_target_path.rar"

# 正确写法:在循环外打开文件,持续写入
with open(file_path, "wb") as f:
    kali_res = requests.get(KALI, stream=True)
    # 可选:确保请求成功,避免下载错误响应的内容
    kali_res.raise_for_status()
    # 增大chunk_size提升下载效率,1MB是合理的取值
    for chunk in kali_res.iter_content(chunk_size=1024*1024):
        f.write(chunk)

额外验证建议

  • 下载完成后,对比本地文件与服务器文件的MD5/SHA哈希值,确认文件完整性。
  • 检查响应头的Content-Length,对比本地文件大小是否一致(需服务器正确返回该字段):
    import os
    server_file_size = int(kali_res.headers.get("Content-Length", 0))
    local_file_size = os.path.getsize(file_path)
    if server_file_size != local_file_size:
        print("文件下载不完整,大小不匹配")
    

内容的提问来源于stack exchange,提问作者xavvvv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:45:36