微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python批量修改文件名

修改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("已完成!")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐