Python实现批量更换指定目录下文件扩展名的方法


Posted in Python onSeptember 19, 2016

本文实例讲述了Python实现批量更换指定目录下文件扩展名的方法。分享给大家供大家参考,具体如下:

#encoding=utf-8
#author: walker
#date: 2013-12-06
#function: 深度遍历指定目录,更换指定扩展名
import os
import os.path
#读入指定目录并转换为绝对路径
rootdir = raw_input('root dir:\n')
rootdir = os.path.abspath(rootdir)
print('absolute path:\n' + rootdir)
#读入原扩展名并标准化
old_ext = raw_input('old extension:\n')
old_ext = old_ext.strip()
if old_ext[0] != '.':
  old_ext = '.' + old_ext
#读入新扩展名并标准化
new_ext = raw_input('new extension:\n')
new_ext = new_ext.strip()
if new_ext[0] != '.':
  new_ext = '.' + new_ext
for parent, dirnames, filenames in os.walk(rootdir):
  for filename in filenames:
    pathfile = os.path.join(parent, filename)
    if pathfile.endswith(old_ext):
      new_pathfile = os.path.splitext(pathfile)[0] + new_ext
      print('=======================================================')
      print(pathfile)
      print('-------------------------------------------------------')
      print(new_pathfile)
      print('=======================================================')
      os.rename(pathfile, new_pathfile)

PS:上述功能一个shell命令也可以实现

#将后缀.ini换成.txt
#路径名可以是相对路径或绝对路径
find 路径名 | rename 's/\.ini$/\.txt/'

注意,上面的rename命令是perl版的rename命令。

PS2:scandir的兼容代码。

# Use the built-in version of scandir/walk if possible, otherwise
# use the scandir module version
try:
  from os import scandir, walk  #python3.5+
except ImportError:
  from scandir import scandir, walk #python3.4-

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python将html转成PDF的实现代码(包含中文)
Mar 04 Python
python WindowsError的错误代码详解
Jul 23 Python
简述Python2与Python3的不同点
Jan 21 Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 Python
python多线程分块读取文件
Aug 29 Python
python自动分箱,计算woe,iv的实例代码
Nov 22 Python
python matplotlib中的subplot函数使用详解
Jan 19 Python
详解python 降级到3.6终极解决方案
Feb 06 Python
在Django中自定义filter并在template中的使用详解
May 19 Python
Python闭包及装饰器运行原理解析
Jun 17 Python
Python与C/C++的相互调用案例
Mar 04 Python
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
May 28 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 #Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 #Python
Python实现更改图片尺寸大小的方法(基于Pillow包)
Sep 19 #Python
Python自定义进程池实例分析【生产者、消费者模型问题】
Sep 19 #Python
python安装PIL模块时Unable to find vcvarsall.bat错误的解决方法
Sep 19 #Python
Python操作Access数据库基本步骤分析
Sep 19 #Python
Python自定义主从分布式架构实例分析
Sep 19 #Python
You might like
Zend Studio 无法启动的问题解决方法
2008/12/04 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
分享php多功能图片处理类
2016/05/15 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
一些不错的js函数ajax
2008/08/20 Javascript
基于JQuery实现异步刷新的代码(转载)
2011/03/29 Javascript
一个JavaScript操作元素定位元素的实例
2014/10/29 Javascript
浅谈window.onbeforeunload() 事件调用ajax
2016/06/29 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
JavaScript中最容易混淆的作用域、提升、闭包知识详解(推荐)
2016/09/05 Javascript
easyui combobox开启搜索自动完成功能的实例代码
2016/11/08 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
2017/01/19 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
浅谈webpack打包生成的bundle.js文件过大的问题
2018/02/22 Javascript
p5.js入门教程之键盘交互
2018/03/19 Javascript
webpack里使用jquery.mCustomScrollbar插件的方法
2018/05/30 jQuery
Vue.js 时间转换代码及时间戳转时间字符串
2018/10/16 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
jQuery Ajax async=>false异步改为同步时,解决导致浏览器假死的问题
2019/07/22 jQuery
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
HTML元素拖拽功能实现的完整实例
2020/12/04 Javascript
[02:38]DOTA2英雄基础教程 噬魂鬼
2014/01/03 DOTA
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
深入探究Django中的Session与Cookie
2017/07/30 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
python爬取基于m3u8协议的ts文件并合并
2019/04/26 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
Python程序暂停的正常处理方法
2019/11/07 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
TensorFlow设置日志级别的几种方式小结
2020/02/04 Python
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
普通PHP程序员笔试题
2016/01/01 面试题
如何通过jdbc调用存储过程
2012/04/19 面试题
职称评定个人总结
2015/03/05 职场文书
民事纠纷协议书
2016/03/23 职场文书