我有一个音乐目录,其中每个级别都有专辑文件夹以及单个歌曲。我如何遍历所有这些文件,也编码在不同的格式(mp3, wav等)?此外,是否有一种方法可以将它们重命名为更符合我喜欢使用正则表达式的格式?
谢谢
-
os.walk
遍历目录及其子目录中的文件,递归地 -
os.rename
重命名
我认为文件的编码在这里不起作用。当然,您可以检测它们的扩展名(使用os.path.splitext
)并基于它做一些事情,但只要您只需要重命名文件(即操作它们的名称),内容几乎无关紧要。
我在自己编写的程序中使用了这段代码。我用它来获得图像文件的递归列表,调用模式类似于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