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:])
我需要基本上将冒号-21.mp3等所有文件转换为21.mp3。
但我收到错误CANNOT CREATE A FILE WHEN THAT FILE ALREADY EXISTS.
如何解决这个问题?我使用的是Windows 7。
答案 0 :(得分:4)
问题就在这里:
os.rename(filename, filename[7:])
Python索引从0开始,字符串"colon-"
只有6个字符长,因此冒号-21.mp3将使用您的代码变为1.mp3。将该行更改为使用filename[6:]
,而您的问题应该消失。
也就是说,使用像你一样的硬编码字符串长度并不是一个好主意。这完全是我们在这里发现的原因而容易出错(像这样的硬编码数字通常被称为“幻数”,因为很难说它们为什么被设置为给定的长度)。一个更好的选择是:
os.rename(filename, filename.split('-')[1])