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


Posted in Python onAugust 28, 2018

本文实例为大家分享了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()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
Oct 23 Python
python处理Excel xlrd的简单使用
Sep 12 Python
python实现简单点对点(p2p)聊天
Sep 13 Python
机器学习python实战之手写数字识别
Nov 01 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
python shutil文件操作工具使用实例分析
Dec 25 Python
python3 字符串知识点学习笔记
Feb 08 Python
python实现超级玛丽游戏
Mar 18 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
Mar 03 Python
python批量创建变量并赋值操作
Jun 03 Python
pycharm无法安装cv2模块问题
May 20 Python
python内置模块之上下文管理contextlib
Jun 14 Python
Python绘制正余弦函数图像的方法
Aug 28 #Python
Python logging模块用法示例
Aug 28 #Python
Python异常处理操作实例详解
Aug 28 #Python
Python封装原理与实现方法详解
Aug 28 #Python
python 中文件输入输出及os模块对文件系统的操作方法
Aug 27 #Python
python中cPickle类使用方法详解
Aug 27 #Python
python散点图实例之随机漫步
Aug 27 #Python
You might like
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
Textarea根据内容自适应高度
2013/10/28 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
jQuery如何将选中的对象转化为原始的DOM对象
2014/06/09 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
jQuery事件用法详解
2016/10/06 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
jQuery用noConflict代替$的实现方法
2017/04/12 jQuery
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
vue实现个人信息查看和密码修改功能
2018/05/06 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
python 编程之twisted详解及简单实例
2017/01/28 Python
python爬虫之快速对js内容进行破解
2019/07/09 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
python sqlite的Row对象操作示例
2019/09/11 Python
将python2.7添加进64位系统的注册表方式
2019/11/20 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
10个很棒的 CSS3 开发工具 推荐
2011/05/16 HTML / CSS
香蕉共和国Banana Republic官网:美国GAP旗下偏贵族风格服饰品牌
2016/11/21 全球购物
德国鞋子网上商店:Omoda.de
2017/03/31 全球购物
WoolOvers澳洲官方网站:英国针织服装公司
2018/05/13 全球购物
芬兰灯具网上商店:Nettilamppu.fi
2018/06/30 全球购物
澳洲CFL商城:CHEMIST FOR LESS(中文)
2021/02/28 全球购物
周年庆促销方案
2014/03/15 职场文书
诚信考试承诺书
2014/03/27 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
公司车辆维修管理制度
2015/08/05 职场文书
高质量“欢迎词”
2019/04/03 职场文书
2019年描写人生经典诗句大全
2019/07/08 职场文书
《群青的幻想曲》京力秋树角色PV公开
2022/04/08 日漫
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技