使用Python3下载图片时如何自动化生成文件名避免文件覆盖
解决方法
方案1:按序号命名(适配你批量下载100张的需求)
不需要额外安装任何库,直接运行以下代码即可一次性下载100张不重名的人脸图片:
import urllib.request import time # 你需要下载的总数量,这里填100 download_count = 100 for index in range(download_count): # 用序号拼接文件名,天然不会重复,方便后续整理素材 save_name = f"face_{index}.jpg" urllib.request.urlretrieve("https://www.thispersondoesnotexist.com", save_name) print(f"已完成第{index+1}张下载,文件名为{save_name}") # 加1秒间隔,避免请求太频繁被网站拦截 time.sleep(1)
运行后会在你的PyCharm项目根目录下生成face_0.jpg到face_99.jpg共100个文件,不会互相覆盖。
方案2:随机文件名(适合单次运行只下载1张的场景)
如果你不需要批量下载,只是每次运行存1张,用以下代码生成完全不重复的随机文件名即可:
import urllib.request import uuid # 生成32位长度的唯一随机字符串作为文件名,不存在重复概率 random_name = f"{uuid.uuid4().hex}.jpg" urllib.request.urlretrieve("https://www.thispersondoesnotexist.com", random_name) print(f"图片已保存为{random_name}")
小提示:将原代码中的http链接替换为https可以降低请求失败的概率。
内容的提问来源于stack exchange,提问作者koool
相关产品推荐
相关产品推荐

