批量替换文件夹名称或文件名称中特定字符
2016-07-10 17:03
441 查看
最近由于要测试一个小程序时需要比较两个文件夹的差异,而且两个文件夹中的文件夹及文件名称仅在相同位置处相差几个字符,如果将一个文件夹中的某些字符替换为另一个文件夹相同位置处的字符后则两个文件夹中的内容完全相同,因此写了下面的一个小程序进行批量处理
#!/usr/bin/env python # encoding:utf-8 import os import sys import pdb import getopt def rename(paths,source,dest): for p in os.listdir(paths): str = os.path.join(paths,p) if(os.path.isdir(str)): rename(str,source,dest) if(p.find(source) != -1 and editPath): os.rename(os.path.join(paths,p),os.path.join(paths,p.replace(source,dest))) else: if(p.find(source) != -1 and editFile): os.rename(os.path.join(paths,p),os.path.join(paths,p.replace(source,dest))) def usage(): print "description:replace string in path or filename with other string recursive" print "-t 目标文件夹" print "-s 将要被替换的字符串" print "-d 用来替换的字符串" print "-p 替换文件夹名称" print "-f 替换文件名称" print "-h 显示帮助信息" #读取命令行参数 _DEBUG=False opts,args = getopt.getopt(sys.argv[1:],"hpft:s:d:") path = "" source = "" dest = "" editPath = False editFile = False if(_DEBUG == True): pdb.set_trace() for op,value in opts: if(op == "-t"):#获取目标文件夹 path = value elif(op == "-s"):#获取要替换的字符串 source = value elif(op == "-d"):#获取被替换的字符串 dest = value elif(op == "-p"):#获取是否替换文件夹名称的标志 editPath = True elif(op == "-f"):#获取是否替换文件名称的标志 editFile = True elif(op == "-h"):#打印帮助信息 usage() sys.exit() if(source == "" or dest == "" or path == ""): usage() sys.exit() rename(path,source,dest)
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法