Python批量修改文件名

2021/5/4 14:25:17

本文主要是介绍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("已完成!")


这篇关于Python批量修改文件名的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程