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

yipeiwu_com6年前Python基础

本文实例讲述了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文本文件操作技巧汇总》、《Python URL操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

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

相关文章

Python基于socket实现简单的即时通讯功能示例

本文实例讲述了Python基于socket实现简单的即时通讯功能。分享给大家供大家参考,具体如下: 客户端tcpclient.py # -*- coding: utf-8 -*- i...

用TensorFlow实现lasso回归和岭回归算法的示例

用TensorFlow实现lasso回归和岭回归算法的示例

也有些正则方法可以限制回归算法输出结果中系数的影响,其中最常用的两种正则方法是lasso回归和岭回归。 lasso回归和岭回归算法跟常规线性回归算法极其相似,有一点不同的是,在公式中增加...

Python学习笔记之字符串和字符串方法实例详解

Python学习笔记之字符串和字符串方法实例详解

本文实例讲述了Python学习笔记之字符串和字符串方法。分享给大家供大家参考,具体如下: 字符串 在 python 中,字符串的变量类型显示为 str。你可以使用双引号 " 或单引号 '...

Python装饰器实现几类验证功能做法实例

最近新需求来了,要给系统增加几个资源权限。尽量减少代码的改动和程序的复杂程度。所以还是使用装饰器比较科学 之前用了一些登录验证的现成装饰器模块。然后仿写一些用户管理部分的权限装饰器。 比...

pycharm 使用心得(七)一些实用功能介绍

pycharm 使用心得(七)一些实用功能介绍

实时比较 PyCharm 对一个文件里你做的改动保持实时的跟踪,通过在编辑器的左侧栏显示一个蓝色的标记。这一点非常方便,我之前一直是在Eclipse里面用命令“Compare again...