Python批量修改文件名

时间:2023-03-09 13:03:30
Python批量修改文件名

处理语料库时,有些文件名字很不规则,为了方便处理,同义按数字顺序修改名称,主要是用到os模块:

import os

def RenameFiles(srcdir):
#将目录下所有的文件命名为数字开头的名称
srcfiles = os.listdir(srcdir)
index = 1
for srcfile in srcfiles:
print srcfile
sufix = os.path.splitext(srcfile)[1]
print sufix
destfile = srcdir + "//" + u"%d"%(index) + sufix
srcfile = os.path.join(srcdir, srcfile)
os.rename(srcfile, destfile)
index += 1
srcdir = u"奥运"
RenameFiles(srcdir)

当然,上述重复运行就出错,应为rename函数中的两个参数必须不同名。

附:主要os模块属性和方法:

1.os.getcwd()

  得到当前py文件所在工作目录。

2.os.name

  得到使用平台的字符串。window ——'nt'表示,Linux/Unix——'posix'。

3.os.listdir('目录名')

  得到目录下的所有文件和目录名。

4.os.remove()

  删除当前目录下的指定文件。(相对路径)

5.os.system(‘系统命令名称’)

  运行shell命令。

6.os.sep   显示操作系统特定的路径分割符。

7.os.linesep   显示当前平台使用的行终止符

8.os.path.split("文件绝对路径名称")

  得到文件绝对路径的目录名和文件名

9.os.path.isfile()和os.path.isdir()

  检测给出的路径是文件名还是路径名称

10.os.path.exists('路径名称')

  判断路径是否真地存在

11.os.path.abspath("文件名称")——获得绝对路径。常用os.path.abspath(__file__):得到当前脚本所在的绝对路径。

12.os.path.normpath(path)——获得规范path的字符串形式

13.os.path.getsize(name):获得文件大小,如果name是目录返回0L

14.os.path.splitext():分离文件名与扩展名

15.os.path.join(path,name):连接目录与文件名或目录

16.os.path.basename(path):不论绝对路径还是相对路径只返回文件名

17.os.path.dirname(path):返回文件绝对路径