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

如何用Python 2.7从关键词列表随机重命名多张图片?

嘿,我来帮你搞定这个随机重命名图片的问题!你已经迈出了不错的第一步,不过现有代码里还有几个小地方需要调整,尤其是随机选取关键词和正确生成新文件名这两块,我给你一步步理顺:

先说说现有代码的小问题

  • 你的keyword()函数目前只是遍历打印关键词,没有实际用来生成随机名称
  • 最后os.rename(name, keyword_name)这行肯定会报错,因为keyword_name是整个元组,而os.rename需要单个文件名作为第二个参数
  • 缺少随机模块的支持,没办法从关键词列表里随机挑取元素

完整的解决方案代码

我给你写了一份新手友好的修改版代码,每一步都加了注释,你可以直接用:

import os
import random  # 必须导入这个模块才能实现随机选取

# 建议把关键词里的扩展名去掉,这样重命名时能保留原图片的格式(比如原是png就还是png)
keyword_name = ("key", "alph", "hold", "name", "kid", "young", "zolo", "lima0", "sofia", "temra", "tooad", "aeder", "ed", "de", "cf", "fc")

def rename_images():
    # 目标图片文件夹路径
    target_folder = r"C:\Desktop\cLine\file"
    # 获取文件夹里的所有文件
    all_files = os.listdir(target_folder)
    
    # 切换到目标文件夹(这样重命名时不用写完整路径)
    os.chdir(target_folder)
    
    for file in all_files:
        # 拆分原文件名和扩展名(比如"cat.jpg"拆成"cat"和".jpg")
        _, file_ext = os.path.splitext(file)
        # 可选:只处理图片文件,避免误改其他类型文件
        if file_ext.lower() not in [".jpg", ".jpeg", ".png", ".gif"]:
            continue
        
        # 核心步骤:从关键词列表里随机挑一个作为新文件名
        random_keyword = random.choice(keyword_name)
        # 组合新文件名+原扩展名
        new_file_name = f"{random_keyword}{file_ext}"
        
        # 执行重命名
        os.rename(file, new_file_name)
        print(f"搞定!{file} → {new_file_name}")

# 调用函数开始重命名
rename_images()

关键知识点解释

  1. random.choice():这是实现随机选取的核心,它会从你给的元组/列表里随机挑出一个元素,每次循环都会选不同的(当然也有极小概率重复,后面说优化)
  2. 保留原扩展名:把关键词里的扩展名去掉,用原文件的扩展名,这样不管原图片是jpg还是png,重命名后格式都不会变
  3. 过滤非图片文件:加个判断跳过非图片文件,防止误改文件夹里的其他文档

进阶优化:避免重复文件名

如果担心随机选到同一个关键词导致文件被覆盖,可以加个小循环,确保新文件名不存在:

# 替换原代码里生成新文件名的部分
while True:
    random_keyword = random.choice(keyword_name)
    new_file_name = f"{random_keyword}{file_ext}"
    # 检查新文件名是否已经存在,不存在就退出循环
    if not os.path.exists(new_file_name):
        break

这样就能保证每张图片的新名称都是唯一的啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:20:55