在Windows中重命名文件时出现Python错误

2 投票
4 回答
1946 浏览
提问于 2025-04-17 09:20

我正在尝试给一个文件夹里的所有jpg文件起个随机名字,这样它们在我的数字相框里就能以半随机的顺序出现。

这是我正在尝试使用的代码:

import os
import random

for filename in os.listdir("."):
    hold = random.randint(1,100000)
    f=str(hold)+'.jpg'

    if(filename.endswith('.jpg') or (filename.endswith('.JPG'))):
        os.rename(filename,f)

但是当我运行它时,我得到了:

WindowsError: [Error 82] The directory or file cannot be created.

我看到的所有内容都让我觉得我的代码应该可以工作,我不知道为什么它不运行。

编辑:看起来是因为我想重命名的文件名里有空格。

编辑2:我把文件复制到一个格式为FAT的SD卡上,而我运行代码的文件夹里有最大数量的项目。我通过把几个文件移动到一个子文件夹里解决了这个问题。

4 个回答

0

可能是你的重命名操作失败了。试着在你的代码里加一些调试打印,看看到底是什么时候出错。在重命名之前加上 print 'Renaming %s to %s' % (filename, f),这样你就能看到重命名失败的具体时刻。

0

我看到的问题是,变量filename并不是一个真实的文件,而只是一个字符串。os.listdir()这个函数会返回一个包含文件名的字符串列表,这些文件名都是在那个文件夹里的。你需要用open("w", filename)来打开这个文件,然后才能重命名它,最后再保存。

0

我在把文件复制到一个格式为FAT的SD卡时,发现我正在使用的文件夹里已经放满了文件。最后我通过把几个文件移动到一个子文件夹里解决了这个问题。

撰写回答