Python批量更换指定目录文件的扩展名

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#encoding: utf-8
#author: walker
#date: 2013-12-06
#summary: 深度遍历指定目录,更换指定扩展名
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命令也可以实现

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

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


PS2:scandir的兼容代码。

1
2
3
4
5
6
# 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-


*** walker ***

本文转自walker snapshot博客51CTO博客,原文链接http://blog.51cto.com/walkerqt/1337457如需转载请自行联系原作者


RQSLT

相关文章
|
7天前
|
数据格式 Python
【Python】已解决:Excel无法打开文件test.xIsx“,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
【Python】已解决:Excel无法打开文件test.xIsx“,因为文件格式或文件扩展名无效。请确定文件未损坏,并且文件扩展名与文件的格式匹配。
35 0
|
3天前
|
安全 网络安全 数据安全/隐私保护
`certifi`是一个Python包,它提供了一个包含Mozilla证书颁发机构(CA)Bundle的PEM文件。
`certifi`是一个Python包,它提供了一个包含Mozilla证书颁发机构(CA)Bundle的PEM文件。
19 7
|
3天前
|
存储 对象存储 Python
`openpyxl`是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它不需要Microsoft Excel,也不需要.NET或COM组件。
`openpyxl`是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它不需要Microsoft Excel,也不需要.NET或COM组件。
7 1
|
13天前
|
JSON 数据格式 Python
Flask实现内部接口----pycharm安装及新建,location代表着文件路径,下面是Python的环境,Flask是由Python开发的框架,Python文件接口ython通过GET发送
Flask实现内部接口----pycharm安装及新建,location代表着文件路径,下面是Python的环境,Flask是由Python开发的框架,Python文件接口ython通过GET发送
|
8天前
|
缓存 Shell 开发工具
[oeasy]python024_vim读取文件_从头复制到尾_撤销_重做_reg_寄存器
[oeasy]python024_vim读取文件_从头复制到尾_撤销_重做_reg_寄存器
16 5
|
6天前
|
Python
python存取yaml文件
python存取yaml文件
|
14天前
|
Linux iOS开发 MacOS
【超级简单】Python代码如何打包成exe文件
【超级简单】Python代码如何打包成exe文件
37 1
|
20天前
|
JSON 安全 数据格式
Python文件操作宝典:一步步教你玩转文件读写
Python文件操作宝典:一步步教你玩转文件读写
|
20天前
|
Python
python搭建文件服务
python搭建文件服务
15 1
|
3天前
|
存储 Python
`tempfile`模块在Python中用于创建临时文件和目录。
`tempfile`模块在Python中用于创建临时文件和目录。
5 0