Chinaunix首页 | 论坛 | 博客
  • 博客访问: 821682
  • 博文数量: 97
  • 博客积分: 3042
  • 博客等级: 中校
  • 技术积分: 1610
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-21 11:48
文章存档

2015年(1)

2014年(3)

2013年(4)

2012年(43)

2011年(44)

2010年(2)

分类: LINUX

2012-01-07 19:28:29

os模块的函数rename()可以对文件或者目录进行重命名。

下面演示文件重命名操作。
如果当前目录存在名为myfile.txt的文件,则重命名为myfile_rename.txt.
import os
li = os.listdir(".")                                    #返回当前目录的文件列表
print li                                                     #打印出当前目录包含的文件
if myfile.txt in li:
       os.rename("myfile.txt", "myfile_rename.txt")

上面例子中是修改文件名,但是文件还是统一类型, 文件的后缀名没变,有的时候需要将一种类型的文件改成另一种类型的文件这是就得利用rename()和字符串查找的函数。
示例如下:将后缀名为“html”格式的文件改成“htm”格式的文件
import os
files = os.listdir(".")
for filename in files:
      pos = filename.find(".")
      if filename[pos+1:] == "html" :
             newname = filename[:pos+1] +"htm"
             os.rename(filename, newname)
以上过程还可以通过splitext()来实现,splitext()用于将文件名和后缀名分隔开
import os
files = os.listdir(".")
for  filename in files :
       li = os.path.splitext(filename)      #返回文件名和后缀名组成的列表
       if li[1] == "html":
              newname = li[0] + "htm"
              os.rename(filename, newname)

路径的匹配可以使用glob模块,返回符合给定匹配条件的文件列表。例如上面的例子需要判断文件后缀是否是“html”类型,可以使用glob()直接进行匹配: glob.glob(“*.html”)
阅读(4293) | 评论(3) | 转发(1) |
给主人留下些什么吧!~~

kouyanghao2012-02-08 20:48:41

重返人生: 哦~批量重命名呢?~.....
你写个简单的脚本吧, 先利用目录遍历找出所有要修改的文件名, 然后利用通配符结合文件重命名函数进行重命名就行了

kouyanghao2012-02-08 20:13:52

重返人生: 哦~批量重命名呢?~.....
利用通配符知识,写个简单的脚本

重返人生2012-01-09 20:08:33

哦~批量重命名呢?~