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連續

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