【python】对文件实现批量重命名

本文介绍了一个Python脚本,用于查找并修复数据文件中包含括号和数字后缀的命名错误,如将(i)替换为_,然后使用CSV和os.rename函数批量重命名文件。
摘要由CSDN通过智能技术生成

实验描述

现有一堆数据命名错误,有些文件中有括号和数字的后缀,要将(i)改为_i.如下表所示

原名称修改后名称
data(1).twfdata _1.twf
data(1).tifdata _1.tif
data(1).aux.xmldata _1.aux.xml

实现思路

  1. 先读取整个文件,将整个文件夹中含有(i)的文件找到,写入CSV,列名为old_name
  2. 创建新的一列,列名为new_name。将old_name中的'('替换为'_'')'删去,
  3. 将上述操作后的结果存入new_name即可;

参考代码如下:

with open(dir+"\\"+"file.csv","w",newline = '\n') as f:
    csv_writer = csv.writer(f)
    #写表头
    csv_writer.writerow(['old_name','new_name'])
    for row in nameList: 
        row_ = row.replace('(','_')
        row_ = row_.replace(')','')
        csv_writer.writerow([row,row_])
f.close
  1. 通过os包中的rename('old_name','new_name')函数,根据csv文件即可实现改名。
os.rename('old_name','new_name')

完整代码

import os
import csv
import pandas as pd
suffix = ['.twf','.tif','.aux.xml','.txt']
dir = r'F:data'
nameList = []
for file in os.listdir(dir):
    if  '(' in file and ')' in file:
        nameList.append(file)
for i in range(len(nameList)):
    nameList[i] =  nameList[i]

with open(dir+"\\"+"file.csv","w",newline = '\n') as f:
    csv_writer = csv.writer(f)
    #写表头
    csv_writer.writerow(['old_name','new_name'])
    for row in nameList: 
        row_ = row.replace('(','_')
        row_ = row_.replace(')','')
        csv_writer.writerow([row,row_])
f.close
print("finished")
print(nameList)
path = dir + r'\file.csv'
data = pd.read_csv(path,encoding='UTF-8',usecols = ['old_name','new_name'])
modList = data.values.tolist()#[[oldName,newName],....]
for name in modList:
    os.rename(dir+'/'+name[0],dir+r'/'+name[1])
    print(name[0]+' → '+name[1]+" 已完成")# 打印结果:xxx (4).tif → xxx _4.tif 已完成

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

维吉斯蔡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值