pythonを使用してファイルの名前を一括変更する
1702 ワード
プログラム機能:バッチ修正プログラムが存在するディレクトリで接尾辞名を指定したファイル名は1,2,3,4,.,名前を変更したファイルの対応関係をログに記録し、rename_を生成します.log.logファイル.
入力:指定した接尾辞名(たとえば.txt、またはtxtを入力)
出力:現在のディレクトリファイル名が1,2,3に順次変更されました.ログファイルrename_logs.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()