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)

 

posted @ 2017-11-09 15:43  pxtgis  阅读(699)  评论(1)    收藏  举报