Python遍历目录并批量更换文件名和目录名的方法


Posted in Python onSeptember 19, 2016

本文实例讲述了Python遍历目录并批量更换文件名和目录名的方法。分享给大家供大家参考,具体如下:

#encoding=utf-8
#author: walker
#date: 2014-03-07
#summary: 深度遍历指定目录,并将子目录和文件名改为小写
#注意,此程序只针对windows,windows下文件(夹)名不区分大小写
import os
import os.path
import shutil
#读入指定目录并转换为绝对路径
rootdir = raw_input('root dir:\n')
rootdir = os.path.abspath(rootdir)
print('absolute root path:\n*** ' + rootdir + ' ***')
#先修改文件名
for parent, dirnames, filenames in os.walk(rootdir):
  for filename in filenames:
    pathfile = os.path.join(parent, filename)
    pathfileLower = os.path.join(parent, filename.lower())
    if pathfile == pathfileLower:  #如果文件名本身就是全小写
      continue
    print(pathfile + ' --> ' + pathfileLower)
    os.rename(pathfile, pathfileLower)
#后修改目录名,这里注意topdown参数。
#topdown决定遍历的顺序,如果topdown为True,则先列举top下的目录,然后是目录的目录,依次类推;
#反之,则先递归列举出最深层的子目录,然后是其兄弟目录,然后父目录。
#我们需要先修改深层的子目录
for parent, dirnames, filenames in os.walk(rootdir, topdown=False):
  for dirname in dirnames:
    pathdir = os.path.join(parent, dirname)
    pathdirLower = os.path.join(parent, dirname.lower())
    if pathdir == pathdirLower: #如果文件夹名本身就是全小写
      continue
    print(pathdir + ' --> ' + pathdirLower)
    os.rename(pathdir, pathdirLower)

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

Python 相关文章推荐
python共享引用(多个变量引用)示例代码
Dec 04 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
python中利用h5py模块读取h5文件中的主键方法
Jun 05 Python
python 循环读取txt文档 并转换成csv的方法
Oct 26 Python
Python中使用__new__实现单例模式并解析
Jun 25 Python
Python 硬币兑换问题
Jul 29 Python
pygame实现俄罗斯方块游戏(基础篇3)
Oct 29 Python
浅谈pytorch池化maxpool2D注意事项
Feb 18 Python
通过python检测字符串的字母
Feb 18 Python
python 工具 字符串转numpy浮点数组的实现
Mar 14 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
python中封包建立过程实例
Feb 18 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
Python实现网络端口转发和重定向的方法
Sep 19 #Python
Python中__init__.py文件的作用详解
Sep 18 #Python
You might like
php 数学运算验证码实现代码
2009/10/11 PHP
php 获取百度的热词数据的代码
2012/02/18 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
php实现文件下载功能的几个代码分享
2014/05/10 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
yii分页组件用法实例分析
2015/12/28 PHP
php session实现多级目录存放实现代码
2016/02/03 PHP
PHP实现的自定义数组排序函数与排序类示例
2016/11/18 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
javascript firefox兼容ie的dom方法脚本
2008/05/18 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
js无刷新操作table的行和列
2014/03/27 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
js控制div层的叠加简单方法
2016/10/15 Javascript
Vue.js原理分析之observer模块详解
2017/02/17 Javascript
jquery easyui dataGrid动态改变排序字段名的方法
2017/03/02 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
[43:24]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第二场 12.12
2020/12/17 DOTA
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
Python实现小数转化为百分数的格式化输出方法示例
2017/09/20 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
对Python强大的可变参数传递机制详解
2019/06/13 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
通过python实现windows桌面截图代码实例
2020/01/17 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
高中生毕业自我鉴定
2013/10/10 职场文书
优秀电子工程系毕业生求职信
2014/05/24 职场文书
学校2014重阳节活动策划方案
2014/09/16 职场文书
党风廉政建设调研报告
2015/01/01 职场文书