5

我有一个音乐目录,其中包含专辑文件夹以及每个级别的单独歌曲。如何遍历所有这些也以不同格式(mp3、wav 等)编码的文件?此外,有没有一种方法可以使用正则表达式将它们重命名为更符合我喜欢的格式?

谢谢

4

2 回答 2

7
  • os.walk递归遍历目录及其子目录中的文件
  • os.rename重命名它们

我认为,文件的编码在这里没有任何作用。当然,您可以检测它们的扩展名(os.path.splitext用于该扩展名)并根据它做一些事情,但只要您只需要重命名文件(即操纵它们的名称),内容就无关紧要了。

于 2011-10-25T19:10:51.663 回答
1

我在自己编写的程序中使用了这段代码。我用它来获取图像文件的递归列表,调用模式类似于re.compile(r'\.(bmp|jpg|png)$', re.IGNORECASE). 我想你应该已经明白了。

def getFiles(dirname, suffixPattern=None):
        dirname=os.path.normpath(dirname)

        retDirs, retFiles=[], []
        for root, dirs, files in os.walk(dirname):
                for i in dirs:
                        retDirs.append(os.path.join(root, i))
                for i in files:
                        if suffixPattern is None or \
                           suffixPattern.search(i) is not None:
                                retFiles.append((root, i))

        return (retDirs, retFiles)

获得列表后,很容易应用重命名规则。os.rename是你的朋友,请参阅http://docs.python.org/library/os.html

于 2011-10-25T19:11:52.083 回答