Python批量修改文件名

该博客介绍了如何使用Python批量创建100个TXT文件,并在原有内容基础上追加信息。之后,通过正则表达式匹配文件并进行重命名,确保文件名不重复,并在每个文件名前添加特定标识。这个过程涉及到文件操作、字符串处理和文件路径的管理。
摘要由CSDN通过智能技术生成

以修改100个txt文件为例:

创建出这100个示例文件:

import os
import time

def write_file():
     '''批量创建文件'''
     for i in range(1,100):
          with open(f"e://Python/文件操作/wenjian/{i}.txt","w") as f:
               f.write("我爱你,中国!")

def zhj():
     '''打开原来的文件,追加内容'''
     file_path = 'e://Python/文件操作/wenjian/'
     name_ls = os.listdir(file_path)
     for j in name_ls:
          with open(file_path+f"{j}","a") as fi:
               fi.write('------爱国者。')
     

if __name__ == "__main__":
     write_file()
     print("已经创建完毕!")
     time.sleep(3)
     zhj()
     print("追加完毕!")

假如我们要保证文件名不重复的前提下,在这100个文件的前面增加“[高二3班]"几个字:

import os
import re

pattern = re.compile(r'.*\.txt') #正则匹配文件,即要重命名哪些文件
num = (x for x in range(1,200)) #生成式,避免生成重复的文件,此处的range范围应大于要修改的文件数量
for path,dirs,files in os.walk("E://Python/文件操作/"):  
	#os.walk主要用来遍历一个目录内各个子目录和子文件,返回一个生成式,元素分别是文件的路径,文件夹名称,完整文件名。  
    for name in files:
        file_path = os.path.join(path,name)
        matching = pattern.findall(file_path)    
        #print(file_path)
        #print(os.path.split(file_path))
        if matching:
            s = "[高二3班]"
            for i in matching:
                y = str(next(num))
                os.rename(file_path, os.path.split(file_path)[-2]+"/"+s+y+".txt") #此处的"/"必须要加,否则就会创建到上一层目录

print("已完成!")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值