一尘不染

批量重命名目录中的文件

python

有没有一种简单的方法可以使用Python重命名目录中已包含的一组文件?

示例: 我有一个充满* .doc文件的目录,我想以一致的方式重命名它们。

X.doc->“ new(X).doc”

Y.doc->“ new(Y).doc”


阅读 140

收藏
2020-12-20

共1个答案

一尘不染

这样的重命名非常容易,例如使用osglob模块:

import glob, os

def rename(dir, pattern, titlePattern):
    for pathAndFilename in glob.iglob(os.path.join(dir, pattern)):
        title, ext = os.path.splitext(os.path.basename(pathAndFilename))
        os.rename(pathAndFilename, 
                  os.path.join(dir, titlePattern % title + ext))

然后可以在示例中使用它,如下所示:

rename(r'c:\temp\xx', r'*.doc', r'new(%s)')

上面的示例会将dir中的所有*.doc文件都转换c:\temp\xxnew(%s).doc,其中%s是文件的先前基本名称(不带扩展名)。

2020-12-20