在Windows中重命名文件时出现Python错误
我正在尝试给一个文件夹里的所有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卡时,发现我正在使用的文件夹里已经放满了文件。最后我通过把几个文件移动到一个子文件夹里解决了这个问题。