当该文件已存在蟒蛇os.rename“”不能创建一个文件(python os.rename “”ca

2019-10-17 10:15发布

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。

Answer 1:

问题就在这里:

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

Python的编号从0开始,字符串"colon-"只有6个字符长,所以冒号21.mp3会使用你的代码变得1.MP3。 更改该行使用的filename[6:] ,而不是和你的问题应该消失。

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

os.rename(filename, filename.split('-')[1])


文章来源: python os.rename “”cannot create a file when that file already exists