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

使用requests.get下载文件时每次迭代自动递增文件名的实现方法

问题解决方法

语法错误原因

你遇到的SyntaxError本质是前一行代码f.write(str(func(i))缺少1个闭合右括号,Python语法解析时括号不匹配,就会误判下一行代码存在语法错误。

原有代码的其他问题

  • xrange是Python2专属语法,Python3中请使用range替代
  • PDF属于二进制文件,不需要用io.open指定utf-8编码,也不要将二进制内容转字符串写入,会直接损坏PDF文件
  • 你写的10次循环逻辑不符合「每运行1次序号加1」的需求,你需要持久化存储序号值,否则程序每次重启都会从1开始计数,导致文件覆盖

完整可运行实现

import requests
import os

# 读取历史序号,无历史则初始化为0
count_file = "pdf_count.txt"
if os.path.exists(count_file):
    with open(count_file, "r", encoding="utf-8") as f:
        current_count = int(f.read().strip()) + 1
else:
    current_count = 1

# 下载PDF文件
PDFurl = pdfGrab[0]
resp = requests.get(PDFurl, allow_redirects=True)

# 生成文件名,三种拼接方式选一种即可
file_name = f"testPDF{current_count}.pdf"
# 其他可选写法:
# file_name = "testPDF" + str(current_count) + ".pdf"
# file_name = "testPDF_{}.pdf".format(current_count)

# 写入本地文件
with open(file_name, "wb") as f:
    f.write(resp.content)

# 存储当前最新序号
with open(count_file, "w", encoding="utf-8") as f:
    f.write(str(current_count))

实现说明

  • 用本地TXT文件持久化存储序号,每次程序运行自动累加,不会出现重复文件名覆盖的问题
  • 直接采用二进制模式wb写入PDF文件,不会出现编码问题导致的文件损坏
  • 文件名拼接推荐使用f-string写法,代码可读性更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:06:02