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实现查询IP地址所在地
Mar 29 Python
深入讲解Python编程中的字符串
Oct 14 Python
Python使用迭代器捕获Generator返回值的方法
Apr 05 Python
Django基础之Model操作步骤(介绍)
May 27 Python
Python实现的生成格雷码功能示例
Jan 24 Python
Python图像处理之直线和曲线的拟合与绘制【curve_fit()应用】
Dec 26 Python
使用python实现抓取腾讯视频所有电影的爬虫
Apr 15 Python
利用python list完成最简单的DB连接池方法
Aug 09 Python
TensorFlow查看输入节点和输出节点名称方式
Jan 04 Python
Python包,__init__.py功能与用法分析
Jan 07 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
Feb 21 Python
Python查找不限层级Json数据中某个key或者value的路径方式
Feb 27 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环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
2013/06/27 PHP
php 启动时报错的简单解决方法
2014/01/27 PHP
zf框架的registry(注册表)使用示例
2014/03/13 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
JavaScript 序列化对象实现代码
2009/12/18 Javascript
直接在JS里创建JSON数据然后遍历使用
2014/07/25 Javascript
jQuery使用之标记元素属性用法实例
2015/01/19 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
mui框架 页面无法滚动的解决方法(推荐)
2018/01/25 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
解决Nuxt使用axios跨域问题
2020/07/06 Javascript
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
python3实现小球转动抽奖小游戏
2020/04/15 Python
python实现按行分割文件
2019/07/22 Python
Django Celery异步任务队列的实现
2019/07/24 Python
python二分法查找算法实现方法【递归与非递归】
2019/12/06 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
python实现时间序列自相关图(acf)、偏自相关图(pacf)教程
2020/06/03 Python
HTML5中的Scoped属性使用实例
2014/04/23 HTML / CSS
英国女性运动服品牌:Sweaty Betty
2018/11/08 全球购物
乌克兰网上珠宝商店:GoldSoveren
2020/03/31 全球购物
安全生产实施方案
2014/02/23 职场文书
《鸟的天堂》教学反思
2014/02/27 职场文书
司法所长先进事迹
2014/06/02 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
大连导游词
2015/02/12 职场文书
刑事辩护词范文
2015/05/21 职场文书
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
2021/06/03 Python
Go语言设计模式之结构型模式
2021/06/22 Golang
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
口袋妖怪冰系十大最强精灵,几何雪花排第七,第六类似北极熊
2022/03/18 日漫
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS