python获取指定文件夹下的所有文件名,并删选指定类型文件进行重命名以及撤销重命名

1.加载包

import os

2.定义函数:获取文件夹file_dir下指定类型file_type的所有文件名

def file_name(file_dir,file_type=''):#默认为文件夹下的所有文件
    lst = []
    for root, dirs, files in os.walk(file_dir):
        for file in files:
            if(file_type == ''):
                lst.append(file)
            else:
                if os.path.splitext(file)[1] == str(file_type):#获取指定类型的文件名
                    lst.append(file)
    return lst

函数中需要的参数:文件夹路径file_dir和待筛选的文件类型file_type根据自己的实际情况设定。如:

file_dir = 'D:\CNKI E-Study\Literature'
file_type = '.caj'

3.获取文件夹file_dir下指定类型file_type的所有文件名,并打印结果

files =file_name(file_dir,file_type)
print(files)

4.批量文件重命名:eg:a.pdf ==> 1_a.pdf

n=0
for f in files:   
    #设置旧文件名(就是路径+文件名)   
    oldname=file_dir+'\\'+f  
    #设置新文件名:源文件名称前加上数字编号_
    f_new = str(n+1)+'_'+f
    newname=file_dir+'\\'+f_new
    #用os模块中的rename方法对文件改名
    os.rename(oldname,newname)
#     print(f,'======>',f_new)
    n+=1


5.查看重命名后文件夹中指定类型文件的名称变化

files_new =file_name(file_dir,file_type)
print(files_new)    

6.批量文件返回到原来的文件名(撤销重命名)


for f_now in files_new:
    #设置旧文件名(就是路径+文件名)   
    oldname=file_dir+'\\'+f_now  
    #设置新文件名
    f_org=''.join(f_now.split('_')[1:])#list元素拼接成字符串
    newname=file_dir+'\\'+f_org    
    #用os模块中的rename方法对文件改名
    os.rename(oldname,newname)
#     print(f_now,'======>',f_org)


7.查看撤销重命名后原来的名

files_org =file_name(file_dir,file_type)
print(files_org) 

 

你可能感兴趣的:(Python)