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 相关文章推荐
在Linux中通过Python脚本访问mdb数据库的方法
May 06 Python
使用Python生成随机密码的示例分享
Feb 18 Python
Python实现两款计算器功能示例
Dec 19 Python
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
Feb 11 Python
python sys.argv[]用法实例详解
May 25 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
Aug 23 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
python实现XML解析的方法解析
Nov 16 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
解决keras,val_categorical_accuracy:,0.0000e+00问题
Jul 02 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 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/05/26 PHP
比file_get_contents稳定的curl_get_contents分享
2012/01/11 PHP
学习php设计模式 php实现享元模式(flyweight)
2015/12/07 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
2019/03/07 PHP
js动态给table添加/删除tr的方法
2013/08/02 Javascript
限制textbox或textarea输入字符长度的JS代码
2013/10/16 Javascript
Event altKey,ctrlKey,shiftKey属性解析
2013/12/18 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
checkbox选中与未选中判断示例
2014/08/04 Javascript
jQuery通过Ajax返回JSON数据
2015/04/28 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
利用JQuery直接调用asp.net后台的简单方法
2016/10/27 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
Javascript 实现匿名递归的实例代码
2017/05/25 Javascript
使用D3.js制作图表详解
2017/08/13 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
优秀幼教自荐信
2014/02/03 职场文书
模范教师事迹材料
2014/02/10 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
2015年学校精神文明工作总结
2015/05/27 职场文书
公司安全管理制度范本
2015/08/05 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
如何制定销售人员薪酬制度?
2019/07/09 职场文书
golang 接口嵌套实现复用的操作
2021/04/29 Golang
用Python实现一个打字速度测试工具来测试你的手速
2021/05/28 Python
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
Python利用FlashText算法实现替换字符串
2022/03/31 Python