欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python 批量更改文件名 经测试可用

程序员文章站 2022-04-18 19:23:48
...

1 读取文本文件内容。新文件名存入list变量 newn[] 中
2 目录下遍历提取旧文件名的特征值。本例中特征为 最开始的几个数字
3 比对特征值 。在 newn[] 中逐条寻找,找到则更改文件名

'''
2newname.txt 内容格式如下:
--------------------------------------
3.1.1 [视频] 感受與覺知-1.mp4
3.2.1 [视频] 感受與覺知-2.mp4
3.3.1 [视频] 感受與覺知-2 補充影片.mp4
3.4.1 [视频] 感受與覺知-3.mp4
3.5.1 [视频] 感受與覺知-4.mp4
3.6.1 [视频] 感受與覺知-5.mp4
--------------------------------------

新文件名存入list变量 newn[] 中
目录下遍历提取旧文件名的特征值。
特征值 在 newn[] 中逐条寻找,找到则更改文件名

'''
newn = []
fi = open('2newname.txt','r',encoding='utf-8')
for line in fi:
    newn.append(line.replace('\n','').replace('\ufeff',''))
fi.close()

import os
#设定文件路径
path= '.\\'  #当前路径

#对目录下的文件进行遍历
for file in os.listdir(path):
#判断是否是文件 ,file是 旧文件名,需要提取特征值
    if os.path.isfile(os.path.join(path,file))==True:
        # 提取特征值 ff[0] ,在 newn[]中循环寻找,
        ff = file.split(" ",1) #只在第一个空格分割这个字符串.
        #特征值 在 newn[] 中逐条寻找,找到则更改文件名
        for ss in newn:
            if ff[0] in ss:
                new_name = ss #设置新文件名
                print('新文件名: '+ss)
                #重命名
                os.rename(os.path.join(path,file),os.path.join(path,new_name))
                break

#结束
print ("End")