python 遍历文件夹修改文件后缀

python 遍历文件夹修改文件后缀

用法 python Modifer.py ./ -fp java xml

# 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()
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值