Notice1:os.listdir(path)

filenames = os.listdir(path)

os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 '.' 和'..' 即使它在文件夹中。只支持在 Unix, Windows 下使用。
参数:path需要列出的目录路径
返回值:返回指定路径下的文件和文件夹列表。

Notice2:re.compile

p = re.compile(OldPartString)
return p.sub(NewPartString,FullString)

正则表达式是一个特殊的字符序列,它能帮助我们方便的检查一个字符串是否与某种模式匹配。re 模块使 Python 语言拥有全部的正则表达式功能。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

re.compile(pattern, flags=0)编译正则表达式,返回RegexObject对象,然后可以通过RegexObject对象调用sub()方法。
re.sub(pattern, repl, string, count=0, flags=0)找到 RE 匹配的所有子串,并将其用一个不同的字符串替换。可选参数 count 是模式匹配後替换的最大次数;count 必须是非负整数。缺省值是 0 表示替换所有的匹配。如果无匹配,字符串将会无改变地返回。
相当于一个字符串中进行模式替换。

Notice3:cmp函数 os.rename

if  cmp(filenames[n],ModifiedFilename):print ...os.rename(path+'\\'+filename[n],path+'\\'+ModifiedFilename)

cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

os.rename(src, dst);src -- 要修改的目录名;dst -- 修改后的目录名;该方法没有返回值。

Notice4:str.find()

str.find(str1, beg=0, end=len(string))

str -- 指定检索的字符串
beg -- 开始索引,默认为0。
end -- 结束索引,默认为字符串的长度。
find() 方法检测字符串中是否包含子字符串 str 1,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

NewNameInFile = re.sub(oldname,newname,OldNameInFile)

os.remove() ; open(file,'wb')
os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。在Unix, Windows中有效;

os.remove(path+'\\'+ModifiedFilename)
f_w = open(path+'\\'+ModifiedFilename,'wb')
f_w.write(NewNameInFile)
f_w.close

Notice5:os.getcwd()

os.getcwd() 方法用于返回当前工作目录。

Notice6:Upper()

upper() 方法将字符串中的小写字母转为大写字母。
#!usr/bin/python
import os, sys, re
oldname="SZH"
newname="LLSH"
def  MyReplace(FullString,OldPartString,NewPartString):p=re.compile (OldPartString)return p.sub(NewPartString,FullString)def MyFindcxxh(str):if str.find('.cxx')==-1 and  str.find('.h')==-1 and str.find('.txt')==-1 and str.find('.ui')==-1  and str.find('.qrc')==-1:return -1else:return 1 def MyChangeName(path,oldname,newname):filenames=os.listdir(path)for n in xrange(len(filenames)):ModifiedFilename=MyReplace(filenames[n],oldname,newname)print filenames[n]print ModifiedFilenameif  cmp(filenames[n],ModifiedFilename):print "from file... "+path+"\\"+filenames[n]+" to... "+ModifiedFilenameos.rename(path+'\\'+filenames[n],path+'\\'+ModifiedFilename)  if MyFindcxxh(filenames[n])==1 :print 'have found cxx/h/txt...'OldNameInFile=open(path+'\\'+ModifiedFilename,'r').read()if OldNameInFile.find(oldname)>-1:print 'need replacing...'NewNameInFile = re.sub(oldname,newname,OldNameInFile)print "modifying the file of ..."+path+"\\"+filenames[n]+' contest...'+oldname+' is replaced by '+newnameos.remove(path+'\\'+ModifiedFilename)f_w=open(path+'\\'+ModifiedFilename,'wb')f_w.write(NewNameInFile)f_w.close()npath=path+"\\"+ModifiedFilenameif os.path.isdir(npath):MyChangeName(npath,oldname,newname)path=os.getcwd()
MyChangeName(path,oldname,newname)

Python脚本-批量修改文件名相关推荐

  1. 使用BAT脚本批量修改文件名的方法

    通过BAT脚本批量修改文件名的办法有两种: 一,先进入想要修改文件名的文件夹中,使用命令: dir /b "*.后缀名" > yuan.xls 从生成含有所需文件名的xls文 ...

  2. 利用python对批量修改文件名

    利用python对批量修改文件名 当你得到一些同类型的文件时,文件名是混乱的.为了方便观看,需要进行修改文件名.就例如:收作业,收取文件. 下面讲讲我对修改文件名的方法. 思路: 获取文件名 ===& ...

  3. 通过BAT脚本批量修改文件名

    通过BAT脚本批量修改文件名的办法有两种: 一,先进入想要修改文件名的文件夹中,使用命令: dir /b "*.后缀名" > yuan.xls 从生成含有所需文件名的xls文 ...

  4. 利用python编写批量修改文件名后缀

    在自己进行学习时发现一个小东西,批量修改文件名缀的小程序,代码不是自己原创的,忘记了是哪位博主的帖子了但还是要记录一下我觉得 import os # import self as self'''os. ...

  5. 使用python脚本批量修改vc工程文件

    作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 问题描述    vc工程文件中的很多属性设置,比如输出目录.中间目录和输出文件名等等.使用vs ...

  6. 【python】批量修改文件名

    需求背景: 批量修改指定文件夹下相似的文件名,提取文件名有效信息,精简文件名. 如: [D:\Edisk\python\BatchRename]文件夹下希望去掉[尚硅谷-Java语言高级-]重复信息. ...

  7. python批量修改文件名代码_python脚本批量修改文件名

    我曾以为,写脚本是很难的,直到我遇到了Python 前言随着国内版权意识的跟进,很多影视音乐资源开始收费,而且度盘又经常随意封杀各种资源,所以,为了保护资源,老司机们越来越倾向于把资源下载到本地,但随 ...

  8. shell脚本批量修改文件名

    背景 目前服役的一些图片资源要同步出来上传到新的环境上,所有图片为了避免重名无法上传,都在图片后面加上了上传时的时间戳,现在导出的图片,需要保存原本的名字.百度找了一下,没有找到现成的脚本,就随便自己 ...

  9. Linux中用shell脚本批量修改文件名

    批量更改目录下所有文件的后缀名 cd到目录下 ls看一下当前文件 批量改 find ./ -name '*.smr' | while read i doecho "$i";mv $ ...

最新文章

  1. libsybcomn64.dll php,libsybcomn.dll下载|
  2. Java 8中stream相关用法
  3. NSIS安装制作程序
  4. 螺钉装弹垫平垫机器人_一种批量组装螺钉、弹垫、平垫的工装及使用方法_2
  5. __getattr__在python2.x与python3.x中的区别及其对属性截取与代理类的影响
  6. 为项目选择合适的语言
  7. 【Tensorflow】深度学习实战04——Tensorflow实现VGGNet
  8. EZGUI下的动态图片的处理
  9. php warning: directive,安装Composer PHP Warning: copy(): SSL operation failed with code
  10. Hyper-V提供创建三种类型的虚拟网络
  11. 单例模式的两种实现方法:饿汉式和懒汉式以及民间懒汉式和登记式
  12. PyQt5中QComboBox选中文本居中显示
  13. DENSE_RANK函数
  14. Mode首席执行官Paul Dawes:从销售工程师到科技领导者
  15. Python计算化学式相对分子质量(含完整代码)
  16. 花一周时间整理了3.5W字的全栈自动化测试面试题(答案+学习路线)!为了找到好工作,拼了!
  17. Arduino使用u8g2库函数驱动4线/6线OLED屏幕(I2C/SPI通讯)附带库函数详解
  18. 惠普测试c语言,HP的分院测试转自HP超话
  19. IE6调试JS_se7en3_新浪博客
  20. java程序员找工作前需要做什么准备?

热门文章

  1. 配置nginx支持php
  2. mac下server开发环境配置
  3. Android中Dialog与DialogFragment的对比
  4. apache 和 nginx 301重定向配置方法
  5. 大家说火箭进决赛的机会有多大?
  6. 一個全世界最珍貴的故事(轉載)
  7. Golang之gjson
  8. 关键字之defer、panic、recover
  9. 【ArrayList:键盘录入多个数据,以 0 结束,并在控制台输出最大值】
  10. JavaScript基础:(加号,数值转换,布尔转换)