最近工做須要,要批量重命名服務器上的文件,將以前文件名中有空格的所有都替換爲下劃線。
開始準備使用shell腳本,發現python實現更簡單。因此就寫了這個腳本。python
- import os
- import glob
- import re
- path="C:/test" # 批量化的初始位置
- fileHandle = open ( 'C:/test/test.txt', 'w' ) #log記錄rename的信息
- def getthefile(path):
- for oldfn in glob.glob( path + os.sep + '*' ):
- if os.path.isdir( oldfn):# 查詢是含有子目錄
- getthefile( oldfn)
- else:
- if re.search(' ', oldfn):
- fn=renamefile(oldfn)
- if os.path.exists(fn):
- index=1
- while True:
- filelist=fn.split('.')
- fn="%s%s%s.%s"%(filelist[0],"_",index,filelist[1])
- if os.path.exists(fn):
- index=index+1
- continue
- break
- fileHandle.write ("%s ===> %s\n"%(oldfn,fn))
- fileHandle.flush()
- os.rename(oldfn,fn);
- else:
- fileHandle.write ("%s Nospace!!\n"%(oldfn))
- fileHandle.flush()
- continue
- def renamefile(filename):
- return filename.replace(' ','_')
- if __name__ == '__main__':
- getthefile(path)