Python批量修改文件名
1 #coding:utf-8 2 import os 3 4 # 列出当前目录下所有的文件 5 # files = os.listdir(".") 6 # for filename in files: 7 # portion = os.path.splitext(filename) 8 # if(portion[1]==".txt"):# 如果后缀是.txt 9 # newname = portion[0]+".doc" # 重新组合文件名和后缀名 10 # os.rename(filename,newname) 11 12 13 def RenameFileSuffix(fileDir,oldSuffix,newSuffix):#文件目录,旧后缀,新后缀 14 #列出某个目录下的文件和文件夹,可以是绝对和相对目录 15 files=os.listdir(fileDir) 16 17 #切换到这个路径作为工作目录,这句要放在listdir后面 18 os.chdir(fileDir) 19 20 # 递归遍历所有文件和文件夹,修改文件名,可以只针对特定后缀的文件更改 21 for fileName in files: 22 print (fileName) 23 24 #递归子文件夹 25 for fileName in files: 26 if os.path.isdir(fileName): 27 print ("***scan sub folder***") 28 RenameFileSuffix(fileName,".1",".2") 29 os.chdir(os.pardir) #别忘了切换到父目录 30 31 # 对这个目录的文件重命名 32 for i in range(0, len(files)): 33 fileNameArray = os.path.splitext(files[i]) 34 if len(fileNameArray) == 2 and (fileNameArray[1] == oldSuffix): 35 newFileName = str(i) + fileNameArray[0] + newSuffix 36 os.rename(files[i], newFileName) 37 print(files[i] + " rename file succeeded") 38 39 def ReplaceFileNme(fileDir,oldStr,newStr): 40 if(fileDir==""): 41 files = os.listdir(".") 42 else: 43 files = os.listdir(fileDir) 44 os.chdir(fileDir) 45 for i in range(0, len(files)): 46 fileNameArray = os.path.splitext(files[i]) 47 if len(fileNameArray) == 2 and fileNameArray[0].find(oldStr) > -1: 48 strFileName = fileNameArray[0].replace(oldStr, newStr) 49 newFileName = strFileName + fileNameArray[1] 50 os.rename(files[i], newFileName) 51 print(files[i] + " rename file succeeded") 52 53 if __name__=='__main__': 55 fileDir = input("请输入要文件路径,如E:/Codes/Python/test1/test: ") 56 oldSuffix=".doc" 57 newSuffix = ".txt" 61 oldStr = input("请输入要替换的文件名内容,如33: ") 62 newStr = input("请输入要新用的文件名内容,如0: ") 63 ReplaceFileNme(fileDir, oldStr, newStr)
-----欢迎转载,但请于明显处标明出处:http://www.cnblogs.com/pxtgis/
如果您觉得本文确实帮助了您,可小小打赏下,谢谢

浙公网安备 33010602011771号