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 字符串split的用法分享
Mar 23 Python
跟老齐学Python之坑爹的字符编码
Sep 28 Python
Python脚本实现DNSPod DNS动态解析域名
Feb 14 Python
Python Matplotlib库入门指南
May 18 Python
Centos Python2 升级到Python3的简单实现
Jun 21 Python
Python编程argparse入门浅析
Feb 07 Python
python绘图模块matplotlib示例详解
Jul 26 Python
解决python有时候import不了当前的包问题
Aug 28 Python
numpy np.newaxis 的实用分享
Nov 30 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
python使用列表的最佳方案
Aug 12 Python
如何快速一次性卸载所有python包(第三方库)呢
Oct 20 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
彻底杜绝PHP的session cookie错误
2009/08/09 PHP
php中socket的用法详解
2014/10/24 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
jquery 之 $().hover(func1, funct2)使用方法
2012/06/14 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
一个jquery实现的不错的多行文字图片滚动效果
2014/09/28 Javascript
jQuery功能函数详解
2015/02/01 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
JavaScript如何实现对数字保留两位小数一位自动补零
2015/12/18 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
2017/09/10 Javascript
js中的闭包学习心得
2018/02/06 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
微信小程序vant弹窗组件的实现方式
2020/02/21 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
python 字符串格式化代码
2013/03/17 Python
从零学python系列之数据处理编程实例(一)
2014/05/22 Python
Python中time模块和datetime模块的用法示例
2016/02/28 Python
在Python中append以及extend返回None的例子
2019/07/20 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
Python内置异常类型全面汇总
2020/05/28 Python
python模块如何查看
2020/06/16 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
一个大学生十年的职业规划
2014/01/17 职场文书
英语专业职业生涯规划范文
2014/03/05 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
决心书格式范文
2015/09/23 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书