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 代码效率的方法
Jul 03 Python
python中使用urllib2获取http请求状态码的代码例子
Jul 07 Python
python通过pil模块将raw图片转换成png图片的方法
Mar 16 Python
Python中的连接符(+、+=)示例详解
Jan 13 Python
Python网络编程详解
Oct 31 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
Pandas分组与排序的实现
Jul 23 Python
django之状态保持-使用redis存储session的例子
Jul 28 Python
django xadmin中form_layout添加字段显示方式
Mar 30 Python
如何让python的运行速度得到提升
Jul 08 Python
Python制作一个仿QQ办公版的图形登录界面
Sep 22 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
Jan 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
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
PHP 在5.1.* 和5.2.*之间 PDO数据库操作中的不同之处小结
2012/03/07 PHP
php给图片加文字水印
2015/07/31 PHP
php压缩文件夹最新版
2018/07/18 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
扩展jquery实现客户端表格的分页、排序功能代码
2011/03/16 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
angular中子控制器向父控制器传值的实例
2018/10/08 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
[57:12]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第一场 10.31
2020/11/02 DOTA
浅谈Python类的__getitem__和__setitem__特殊方法
2016/12/25 Python
Python PO设计模式的具体使用
2019/08/16 Python
pandas使用之宽表变窄表的实现
2020/04/12 Python
python实现视频压缩功能
2020/12/18 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
HTML5混合开发二维码扫描以及调用本地摄像头
2017/12/27 HTML / CSS
10个最常见的HTML5面试题 附答案
2016/06/06 HTML / CSS
EMPHASIS艾斐诗官网:周生生旗下原创精品珠宝品牌
2020/12/17 全球购物
介绍一下except的用法和作用
2015/01/22 面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
应聘面试自我评价
2014/01/24 职场文书
节能环保演讲稿
2014/08/28 职场文书
创先争优活动心得体会
2014/09/04 职场文书
见习报告的格式
2014/10/31 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
总结Python常用的魔法方法
2021/05/25 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python