python系统编程之批量重命名

#-*- coding:utf-8 -*-
#file:BatchRename.py
#
import os
perfix='python'                  #perfix为重命名后的文件其实字符串
length=2                         #length为除去perfix后,文件名要达到的长度
base=1                           #文件名的起始数
format='txt'                     #文件的后缀名
#函数PadLeft将文件补全到指定长度
#str为要补全的字符
#num为要达到的长度
#padstr为达到长度所添加的字符
def PadLeft(str,num,padstr):
    stringlength=len(str)
    n=num-stringlength
    if n>=0:
        str=padstr*n+str
    return str
#为了避免用户误操作,这里先提示用户
print 'the files in  %s will be renamed' % os.getcwd()
input=raw_input('press y to continue\n')      #获取用户输入
if input!='y':                                #判断用户输入,以决定是否执行重命名操作
    exit()
filenames=os.listdir(os.curdir)               #获得目录中的内容
#从基数减1,为了使下边的i=i+1在第一次执行时等于基数
i=base-1
for filename in filenames:
    i=i+1
    #判断当前路径是否为文件,并且不是"rename.py"
    if filename!="BatchRename.py" and os.path.isfile(filename):
        name=str(i);                          #将i装换成字符
        name=PadLeft(name,length,'0')         #将name补全到指定长度
        t=filename.split('.')                 #分割文件名,以检查其是否是所要修改的类型
        m=len(t)
        if format=='':                        #如果未指定文件类型,则更改当前目录中所有文件
            os.rename(filename,perfix+name+'.'+t[m-1])
        else:
            if t[m-1]==format:
                os.rename(filename,perfix+name+'.'+t[m-1])
            else:
                i=i-1                         #保证i连续
    else:
        i=i-1                                 #保证i连续

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章