本文实例为大家分享了python实现遍历文件夹修改文件后缀的具体代码,供大家参考,具体内容如下
用法 python Modifer.py ./ -fp java xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# coding:utf-8
# Build by LandGrey 2016-05-27
import os
import sys
#批量修改路径与文件名
def Modifyprefix(Path,oldcontent,newcontent):
all_file_list = os.listdir(Path) #列出指定目录下的所有文件
for file_name in all_file_list:
currentdir = os.path.join(Path, file_name) #连接指定的路径和文件名or文件夹名字
if os.path.isdir(currentdir): #如果当前路径是文件夹,则跳过
Modifyprefix(currentdir,oldcontent,newcontent)
fname = os.path.splitext(file_name)[ 0 ] #分解出当前的文件路径名字
ftype = os.path.splitext(file_name)[ 1 ] #分解出当前的文件扩展名
if oldcontent in fname:
fdcount[ 0 ] + = 1
replname = fname.replace(oldcontent,newcontent) #将原文件名中的'oldcontent'字符串内容全替换为'newcontent'字符串内容
newname = os.path.join(Path,replname + ftype) #文件路径与新的文件名字+原来的扩展名
os.rename(currentdir,newname) #重命名
#批量修改文件扩展名(后缀)
def Modifypostfix(Path,oldftype,newftype):
all_file_list = os.listdir(Path) #列出指定目录下的所有文件
for file_name in all_file_list:
currentdir = os.path.join(Path,file_name)
if os.path.isdir(currentdir): #迭代
Modifypostfix(currentdir,oldftype,newftype)
fname = os.path.splitext(file_name)[ 0 ]
ftype = os.path.splitext(file_name)[ 1 ]
if oldftype in ftype[ 1 :]: #找到需要修改的扩展名
typecount[ 0 ] + = 1
ftype = ftype.replace(oldftype,newftype)
newname = os.path.join(Path,fname + ftype) #文件路径与原来的文件名字+新的扩展名
os.rename(currentdir,newname) #重命名
def Useage():
print unicode ( "\n[+] 用法: python Modifer.py [指定目录] [选项] [参数1] [参数2]" , "utf-8" )
print unicode ( "[+] 选项 [-fd] :批量修改目录和文件名 [参数1]: 需要替换的字符 [参数2]:替换字符串" , "utf-8" )
print unicode ( "[+] 选项 [-fp] :批量修改文件后缀名 [参数1]: 原后缀名 [参数2]:需要替换的后缀名" , "utf-8" )
print unicode ( "[+] 选项 [-all] :批量修改目录、文件名和文件后缀名 [参数1]: 需要替换的字符部分 [参数2]:替换字符串" , "utf-8" )
print unicode (r "[+] 用法示例:python Modifer.py D:\files -fp txt data" , "utf-8" )
if __name__ = = "__main__" :
typecount = [ 0 ]
fdcount = [ 0 ]
if len (sys.argv) = = 2 and "-h" in sys.argv[ 1 ]:
Useage()
sys.exit()
elif len (sys.argv) ! = 5 :
print unicode ( "\n[+] 参数错误 !\n" , "utf-8" )
print unicode ( "[+] 用 -h 或--help 参数查看Modifer.py用法" , "utf-8" )
sys.exit()
elif os.path.isdir(sys.argv[ 1 ]) is False :
print unicode ( "\n[+] 指定目录错误 ! 请检查输入路径是否正确,路径中不能有空格\n" , "utf-8" )
print unicode ( "[+] 用 -h 或--help 参数查看Modifer.py用法" , "utf-8" )
sys.exit()
elif sys.argv[ 2 ] = = "-fd" :
Modifyprefix(sys.argv[ 1 ],sys.argv[ 3 ],sys.argv[ 4 ])
print unicode ( "\n[+] Modifer.py Build by LandGrey" , "utf-8" )
print unicode ( "[+] 完成 !" , "utf-8" )
print unicode ( "[+] 共修改%s个目录和文件名" % fdcount[ 0 ], "utf-8" )
elif sys.argv[ 2 ] = = "-fp" :
Modifypostfix(sys.argv[ 1 ],sys.argv[ 3 ],sys.argv[ 4 ])
print unicode ( "\n[+] Modifer.py Build by LandGrey" , "utf-8" )
print unicode ( "[+] 完成 !" , "utf-8" )
print unicode ( "[+] 共修改%s个后缀名" % typecount[ 0 ], "utf-8" )
elif sys.argv[ 2 ] = = "-all" :
Modifypostfix(sys.argv[ 1 ],sys.argv[ 3 ],sys.argv[ 4 ])
Modifyprefix(sys.argv[ 1 ],sys.argv[ 3 ],sys.argv[ 4 ])
print unicode ( "\n[+] Modifer.py Build by LandGrey" , "utf-8" )
print unicode ( "[+] 完成 !" , "utf-8" )
print unicode ( "[+] 共修改%s个目录名、文件名和后缀名" % (typecount[ 0 ] + fdcount[ 0 ]), "utf-8" )
else :
print unicode ( "\n[+] 选项错误 !\n" , "utf-8" )
print unicode ( "[+] 用 -h 或--help 参数查看Modifer.py用法" , "utf-8" )
sys.exit()
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/XSL1990/article/details/51793298