pythonを使用してファイルの名前を一括変更する

1702 ワード

プログラム機能:バッチ修正プログラムが存在するディレクトリで接尾辞名を指定したファイル名は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+'
')%(len(rename_logs))) for item in rename_logs: f.write(item[0]+'-->'+str(item[1])+'
') print("Success! %d files(%s)"%(AllFileNum,self.suffix)) if __name__ == '__main__': suffix = input('please input the file suffix:') Raf = RenameAllfiles(suffix) Raf.rename2seqnum()