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通过websocket与js客户端通信示例分析
Jun 25 Python
python中的函数用法入门教程
Sep 02 Python
python简单实现基于SSL的IRC bot实例
Jun 15 Python
详解Python操作RabbitMQ服务器消息队列的远程结果返回
Jun 30 Python
Python制作豆瓣图片的爬虫
Dec 28 Python
对python捕获ctrl+c手工中断程序的两种方法详解
Dec 26 Python
Python中使用logging和traceback模块记录日志和跟踪异常
Apr 09 Python
wxpython多线程防假死与线程间传递消息实例详解
Dec 13 Python
django-csrf使用和禁用方式
Mar 13 Python
python读取mysql数据绘制条形图
Mar 25 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
Python导入父文件夹中模块并读取当前文件夹内的资源
Nov 19 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制作新闻系统的思路
2006/10/09 PHP
discuz7 phpMysql操作类
2009/06/21 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
一个PHP实现的轻量级简单爬虫
2015/07/08 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
用js实现trim()的解决办法
2013/04/16 Javascript
JQuery的AJAX实现文件下载的小例子
2013/05/15 Javascript
JScript分割字符串示例代码
2013/09/04 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
2014/01/26 Javascript
JavaScript中的Math 使用介绍
2014/04/21 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
sortable+element 实现表格行拖拽的方法示例
2019/06/07 Javascript
es6函数name属性功能与用法实例分析
2020/04/18 Javascript
[52:31]VP vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python简单实现enum功能的方法
2016/04/25 Python
python类:class创建、数据方法属性及访问控制详解
2016/07/25 Python
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
Python版中国省市经纬度
2020/02/11 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
使paramiko库执行命令时在给定的时间强制退出功能的实现
2021/03/03 Python
关于HTML5的安全问题开发人员需要牢记的
2012/06/21 HTML / CSS
html5 css3实例教程 一款html5和css3实现的小机器人走路动画
2014/10/20 HTML / CSS
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
VIVOBAREFOOT赤脚鞋:让您的脚做自然的事情
2017/06/01 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
介绍一下OSI七层模型
2012/07/03 面试题
应届大学生自荐信
2013/12/05 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS