用Python写的批量文件重命名

 

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

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

# -*- coding: cp936 -*-

"""

Created on Wed Jun 25 16:24:23 2014



@author: Administrator

"""



import os



def 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 +=1

if __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

你可能感兴趣的:(python)