用python使文件名按照一定规则批量重命名

所用模块:import os

(一)打开文件夹,获得旧文件名

path=r"D:\exp\resultdata"   //文件夹途径

for (root, dirs, files) in os.walk(path):

os.walk(path)//遍历D:\exp\resultdata下文件


path代表需要遍历的根文件夹

root表示正在遍历的文件夹的名字 //路径

dirs记录正在遍历的文件夹下的子文件夹集合[文件夹中子文件夹名字的list]

files记录正在遍历的文件夹中的文件集合[文件名的list]

(二)获得新文件名(如何打开一个文件)

一般新文件名都保存在一个文件中

new_names_files=open('文件名.txt','r')

content=open('文件名.txt','r')(此时content是一个含有所有new name 的列表)

注意:对新名字(字符串)会有一些操作

(1)对文件名(字符)的分割

用split()进行分割

a=''wer.werrew/"

例如:

b=a.split(.)

print(b)

输出结果:b=['wer','werrew/']

注意:字符串分割后得到是一个list

(2)list 添加新的元素、

用append()进行添加

例如:

a=[]

a.append()

(3)字典添加新的元素

用update()进行添加

例如:

d={}

d.update(key:value)

实例:

例如:

对上面content列表中的new name 进行分割并得到以数字为key,后面字符串为名字。

content=['werwewf.1','wfcdsvw.2','sadwefew.3']

d={}

for i in content:

    namesp=i.split(.)

    d.update(namesp[0]:namesp[1])

(三)重命名

利用os.rename()函数

例如

 os.rename(oldname,newname)

实例:旧名字与新名字的数字相对

file=['1.max','2.max'……]//旧名字

for file in files:

        oldname = os.path.join(root,file)

os.path.join()函数:连接两个或更多的路径名组件

Path1 = 'home'

Path2 = 'develop'

Path3 = 'code'

Path10 = Path1 + Path2 + Path3

Path20 = os.path.join(Path1,Path2,Path3)

print ('Path10 = ',Path10)

print ('Path20 = ',Path20)

输出 Path10 = homedevelopcode

        Path20 = home\develop\code 

        namesp=file.split('.')

        new_namesp=d[int(namesp[0])]//数字相对

        newname = os.path.join(root,new_namesp)

        os.rename(oldname,newname)

os.renames() 方法用于递归重命名目录或文件。

os.rename(old,new)

old -- 要重命名的目录

new --文件或目录的新名字。甚至可以是包含在目录中的文件,或者完整的目录树。


你可能感兴趣的:(用python使文件名按照一定规则批量重命名)