#-*- 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连续
python系统编程之批量重命名
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.