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解析中国天气网的天气数据
Mar 21 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
Python教程之全局变量用法
Jun 27 Python
Python爬虫爬取美剧网站的实现代码
Sep 03 Python
Python matplotlib 画图窗口显示到gui或者控制台的实例
May 24 Python
从0开始的Python学习016异常
Apr 08 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
深入浅析Python 函数注解与匿名函数
Feb 24 Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
Mar 09 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
聊一聊python常用的编程模块
May 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
PHP 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
2013/04/25 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
kohana框架上传文件验证规则写法示例
2014/07/14 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
PHP cURL获取微信公众号access_token的实例
2018/04/28 PHP
a标签的href和onclick 的事件的区别介绍
2013/07/26 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
JS上传图片前实现图片预览效果的方法
2015/03/02 Javascript
Jquery实现瀑布流布局(备有详细注释)
2015/07/31 Javascript
Javascript连接Access数据库完整实例
2015/08/03 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
JavaScript Drum Kit 指南(纯 JS 模拟敲鼓效果)
2017/07/23 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
VueAwesomeSwiper在VUE中的使用以及遇到的一些问题
2018/01/11 Javascript
详解node.js的http模块实例演示
2018/07/12 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
Angular8 实现table表格表头固定效果
2020/01/03 Javascript
Python之Web框架Django项目搭建全过程
2017/05/02 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
基于tf.shape(tensor)和tensor.shape()的区别说明
2020/06/30 Python
美国婴儿服装购物网站:Gerber Childrenswear
2020/05/06 全球购物
家长会学生家长演讲稿
2013/12/29 职场文书
网络工程师职业规划
2014/02/10 职场文书
健康家庭事迹材料
2014/05/02 职场文书
初中学校军训方案
2014/05/09 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
中班上学期个人总结
2015/02/12 职场文书
实习推荐信格式模板
2015/03/27 职场文书
纯html+css实现Element loading效果
2021/08/02 HTML / CSS
ubuntu端向日葵键盘输入卡顿问题及解决
2022/12/24 Servers