python

超轻量级php框架startmvc

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

更新时间:2020-04-24 07:05:02 作者:startmvc
本文实例讲述了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 批量更换 指定目录 文件 扩展名