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从入门到精通(DAY 2)
Dec 20 Python
Python基础教程之正则表达式基本语法以及re模块
Mar 25 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
python的slice notation的特殊用法详解
Dec 27 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
Jun 09 Python
Python pytesseract验证码识别库用法解析
Jun 29 Python
Python中flatten( ),matrix.A用法说明
Jul 05 Python
python判断元素是否存在的实例方法
Sep 24 Python
Python-split()函数实例用法讲解
Dec 18 Python
在Python中如何使用yield
Jun 07 Python
python套接字socket通信
Apr 01 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生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
基于JQuery框架的AJAX实例代码
2009/11/03 Javascript
jquery getScript动态加载JS方法改进详解
2012/11/15 Javascript
jquery按回车提交数据的代码示例
2013/11/05 Javascript
javascript和jquery修改a标签的href属性
2013/12/16 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
js实现checkbox全选、不选与反选的方法
2015/02/09 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
React Native悬浮按钮组件的示例代码
2018/04/05 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
使用apifm-wxapi模块中的问题及解决方法
2019/08/05 Javascript
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
node.js中process进程的概念和child_process子进程模块的使用方法示例
2020/02/11 Javascript
Vue的v-model的几种修饰符.lazy,.number和.trim的用法说明
2020/08/05 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
Python re模块介绍
2014/11/30 Python
深入理解python多进程编程
2016/06/12 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
python3处理word文档实例分析
2020/12/01 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
python实现图片转字符画的完整代码
2021/02/21 Python
CSS3 transform的skew属性值图文详解
2014/07/21 HTML / CSS
办公室文员自荐书
2014/02/03 职场文书
文秘大学生求职信
2014/02/25 职场文书
本溪水洞导游词
2015/02/11 职场文书
话题作文之成长
2019/12/09 职场文书
python中对列表的删除和添加方法详解
2022/02/24 Python
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js