python批量修改文件名称

本文介绍了一个Python项目场景,如何读取teacher_id.txt中的姓名-工号信息,然后使用os.rename批量将文件夹中照片文件名从姓名格式改为姓名_工号的格式。如果文件名在字典中,则进行重命名,否则提示无对应ID。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目场景:

有一个文件夹里有人员照片,以姓名命名。因导入人脸库需要,需要将照片名称改为姓名_工号的格式。

第一步:从文件中读取姓名-工号的信息,形成字典。

my_dict = {}
l = []
with open(file='teacher_id.txt',mode='r',encoding='utf8') as f:
    for line in f:
        data = line.strip().split('\t')
        l.append(data)
        my_dict.setdefault(data[0], data[1])

第二步:批量替换。

引入os。使用os.rename()函数实现文件名替换。

import os

# 设置文件所在路径
path = 'teacher_photos/'

# 批量修改文件名
for file in os.listdir(path):
    # 获取文件名和文件扩展名
    filename, extname = os.path.splitext(file)
    filename1 = filename
    print('1', filename,extname)
    # 修改后的文件名
    if filename1 in my_dict.keys():
        val = my_dict[filename1]
        newname = filename1+'_'+val
        print('2', newname)
        # 文件重命名
        os.rename(os.path.join(path, filename+extname), os.path.join(path, newname+extname))
            
    else:
        print('no id of ',filename)
使用 Python 脚本批量重命名文件是一种高效且灵活的方式,特别适用于需要对大量文件进行统一命名的情况。以下是一个通用的脚本模板,可以根据具体需求进行调整。 ### 示例:批量添加前缀或序号 下面的脚本会将指定目录下的所有文件按照顺序重命名为 `文件1.jpg`、`文件2.jpg` 等格式: ```python import os # 设置目标文件夹路径 path = 'D:/your/folder/path' # 替换为你的文件夹路径 count = 1 # 获取文件夹下所有文件 filelist = os.listdir(path) # 遍历文件并重命名 for filename in filelist: # 构造旧文件名路径 old_file_path = os.path.join(path, filename) # 如果是文件而不是文件夹才进行重命名 if os.path.isfile(old_file_path): # 获取文件扩展名 file_extension = os.path.splitext(filename)[1] # 构造新文件名路径 new_file_name = f"文件{count}{file_extension}" new_file_path = os.path.join(path, new_file_name) # 重命名文件 os.rename(old_file_path, new_file_path) count += 1 ``` ### 功能说明 - **路径设置**:修改 `path` 变量为你想要处理的文件夹路径。 - **文件过滤**:该脚本默认跳过子文件夹,仅处理文件[^3]。 - **扩展名保留**:使用 `os.path.splitext()` 方法保留原始文件的扩展名。 - **序号递增**:通过 `count` 变量实现从 1 开始的序号递增。 ### 进阶功能建议 你可以根据实际需求对该脚本进行扩展,例如: - 添加前缀或后缀(如 `prefix_文件1.jpg`)。 - 根据时间戳生成文件名。 - 支持正则表达式匹配特定格式的文件名进行替换。 ### 注意事项 - 在运行脚本之前,请确保备份重要数据,防止误操作导致文件丢失。 - 脚本中使用的路径应使用正斜杠 `/` 或双反斜杠 `\\` 以避免转义问题。 - 不建议在包含大量子文件夹的目录中运行此脚本,除非你已明确知道要处理哪些内容。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值