程序功能:批量修改程序所在目录中指定后缀名的文件名为1,2,3,4,。。。,将对重命名的文件对应关系进行记录日志,生成rename_log.log文件。
输入:指定的后缀名(比如输入 .txt,或者 txt都可以)
输出:当前目录文件名被依次修改为1,2,3.....,日志文件rename_logs.log
import os
import time
class RenameAllfiles():
def __init__(self,suffix): #指定类型的后缀,且只处理当前目录下的文件
self.dirpath = '.'
if suffix[0] !='.':
self.suffix = '.'+suffix
else:
self.suffix = suffix
def rename2seqnum(self):
seqnum = 1
AllFileNum = 0
rename_logs = []
for file in os.listdir(self.dirpath):
fn,su = os.path.splitext(file)
#print(fn,su)
if su == self.suffix:
AllFileNum += 1
oldfilepath = os.path.join(self.dirpath,file)
newname = str(seqnum)+su
newfilepath = os.path.join(self.dirpath,newname)
os.rename(oldfilepath,newfilepath)
seqnum += 1
#记录日志
rename_logs.append((file,newname))
with open(os.path.join(self.dirpath,'rename_log.log'),'a') as f:
f.write(('+'*20+' '+time.asctime()+'(%d files) '+'+'*20+'\n')%(len(rename_logs)))
for item in rename_logs:
f.write(item[0]+'-->'+str(item[1])+'\n')
print("Success! %d files(%s)"%(AllFileNum,self.suffix))
if __name__ == '__main__':
suffix = input('please input the file suffix:')
Raf = RenameAllfiles(suffix)
Raf.rename2seqnum()