python实现修改文件夹下所有文件名称
import os
import re
import argparse
import fileinput
parse=argparse.ArgumentParser()
parse.add_argument('-p','--path')
args=parse.parse_args()
path=args.path
# path='/home/hades/文档/DDSM_pictures/DDSM_Dataset/normals/normal_01/case0018/case0004'
def all_path(dirname):
result = []
for maindir, subdir, file_name_list in os.walk(dirname):
print("1:",maindir) #当前主目录
print("2:",subdir) #当前主目录下的所有目录
print("3:",file_name_list)#当前主目录下的所有文件
for filename in file_name_list:
if os.path.splitext(filename)=='.png': #判断后缀是否为png
print os.path.splitext(filename)
get_filename=os.path.splitext(filename)
filter_filename=re.findall(r'(.+?)\.',get_filename) #因为老卫的文件名因为某种原因是XXX.XXX.XXX,需要将前两个提取出来,所以大家可以根据自身的需要修改中间的代码
new_filename=filter_filename+'.'+filter_filename+'.png'
print new_filename
print filter_filename
os.rename(path+'/'+filename,path+'/'+new_filename) #修改文件名
# if os.path.splitext(filename)[]
# for filename in file_name_list:
# apath = os.path.join(maindir, filename)#合并成一个完整路径
# result.append(apath)
return result
print(all_path(path))
上面的脚本用于将目标文件夹下的png文件的文件名重命名,大家可以根据自身的需求对中间的代码进行修改。另外为了满足自动化需求,老卫重新写了一个自动化运行脚本,用于自动运行寻找目录,然后运行该重命名脚本。
import os
path='/home/hades/文档/DDSM_pictures/DDSM_Dataset/normals/normal_01' #以case上层文件夹为路径,根据不同情况进行替换,比如cancer_01;normal_01等等
dirs=os.listdir(path)#列出目标文件夹下所有目录名称
for dir in dirs: #循环输入转化命令.
if dir != '.idea':
print dir
directory_path='/home/hades/文档/DDSM_pictures/DDSM_Dataset/normals/normal_01/%s' % (dir)
print directory_path
os.system('python rename_pngfile.py -p %s' % (directory_path))
这样就可以实现自动化对特定类型的文件重命名。
页:
[1]