首页 > 代码库 > 用Python写的批量文件重命名

用Python写的批量文件重命名

 

有些时候下载图片或其他文件,文件名都怪怪的,可选的办法是下载一个文件批量重命名的软件。当然,如果想自己‘DIY’一把的话编个Python脚本最好不过了。

下面的代码实现的对指定类型的文件进行批量重命名。拷贝下面的代码到待批量命名的文件夹下,保存为xx.py直接运行,程序会提示需要批量命名的扩展名,以及重命名时的文件前缀。

# -*- coding: cp936 -*-"""Created on Wed Jun 25 16:24:23 2014@author: Administrator"""import osdef doRename():    fi_num_cnt = 1    input_max_len = max(list_len)    preFix=raw_input("请输入文件前缀:\n")    for ifile in ext_list:        new_name = preFix+str(fi_num_cnt)+.+ext        while True:            if os.path.exists(new_name):                fi_num_cnt+=1                new_name = preFix+str(fi_num_cnt)+.+ext            else:                break        print ifile.rjust(input_max_len, ),3* ,重命名为:.ljust(5, ),new_name.rjust(10, )                try:            os.rename(ifile,new_name)         except Exception,e:            print e        fi_num_cnt +=1if __name__==__main__:    while True:             ext = raw_input("请输入要批量命名的文件后缀名:如jpg、txt。直接回车则退出程序\n")        if ext == ‘‘:            exit()        allFiles = os.listdir(os.curdir)            ext_list=[]        list_len=[]        for ifile in allFiles:            if os.path.isfile(ifile) and os.path.splitext(ifile)[1][1:].lower()==ext             and ifile != os.path.basename(__file__):                ext_list.append(ifile)                list_len.append(len(ifile))        if len(ext_list)==0:            print 未发现 *.,ext,类型的文件        else:            break            print 找到如下*.,ext,文件:    for ifile in ext_list:        print ifile    print 25**        while True and len(ext_list)!=0:        choice = raw_input(您确定要对这些文件批量重命名吗?(Y/y或直接回车--确定,N/n--取消)\n)        if  choice==‘‘ or choice==Y or choice == y:            doRename()            print 处理完毕!            raw_input()            break        elif choice == N or choice ==n:            break