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 相关文章推荐
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
Dec 04 Python
Python实现的Google IP 可用性检测脚本
Apr 23 Python
浅谈python中截取字符函数strip,lstrip,rstrip
Jul 17 Python
Python中shutil模块的常用文件操作函数用法示例
Jul 05 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
Python实现对字符串的加密解密方法示例
Apr 29 Python
Python实现监控键盘鼠标操作示例【基于pyHook与pythoncom模块】
Sep 04 Python
python爬取指定微信公众号文章
Dec 20 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
Mar 16 Python
python实现俄罗斯方块小游戏
Apr 24 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
python实现会员管理系统
Mar 18 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 和 MySQL 基础教程(四)
2006/10/09 PHP
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
PHP SPL标准库之SplFixedArray使用实例
2015/05/12 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
PHP中子类重载父类的方法【parent::方法名】
2016/05/06 PHP
YII框架中搜索分页jQuery写法详解
2016/12/19 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
vue实现的下拉框功能示例
2019/01/29 Javascript
微信小程序实现左右列表联动
2020/05/19 Javascript
javascript实现移动端触屏拖拽功能
2020/07/29 Javascript
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
python pandas修改列属性的方法详解
2018/06/09 Python
Python操作word常见方法示例【win32com与docx模块】
2018/07/17 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
python3 中文乱码与默认编码格式设定方法
2018/10/31 Python
Python求均值,方差,标准差的实例
2019/06/29 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
pandas分组聚合详解
2020/04/10 Python
学生发电厂实习自我鉴定
2013/09/22 职场文书
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
遥感技术与仪器求职信
2014/02/22 职场文书
大学生就业策划书范文
2014/04/04 职场文书
安康杯竞赛活动总结
2014/05/05 职场文书
揭牌仪式策划方案
2014/05/28 职场文书
迎新晚会策划方案
2014/06/13 职场文书
教师节活动总结
2014/08/29 职场文书
工作失误检讨书(3篇)
2014/10/11 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书