3

K.. 我只是使用我在这里找到的一个简单脚本:

import os
from os import rename, listdir

print os.listdir(".")
for filename in os.listdir("."):
    if filename.startswith("colon-"):
        print filename
        os.rename(filename, filename[7:])

我基本上需要将所有文件(如colon-21.mp3)转换为21.mp3。

但我得到错误CANNOT CREATE A FILE WHEN THAT FILE ALREADY EXISTS. 如何解决这个问题?我正在使用 Windows 7。

4

1 回答 1

5

问题就在这里:

os.rename(filename, filename[7:])

Python 索引从 0 开始,字符串"colon-"只有 6 个字符长,因此使用您的代码,colon-21.mp3 将变为 1.mp3。改为使用该行filename[6:],您的问题应该消失了。

也就是说,像您这样使用硬编码的字符串长度并不是一个好主意。正是由于我们在这里发现的原因,它很容易出错(像这样的硬编码数字通常被称为“幻数”,因为很难说出为什么将它们设置为给定长度)。一个更好的选择如下:

os.rename(filename, filename.split('-')[1])
于 2012-11-24T10:20:41.383 回答