os.rename [Errno 2] No such file or directory

4

我尝试在MacOS中重命名目录,甚至使用了其他人的代码,但是os.rename仍然向我抛出错误。我提供了我的目录的完整路径和它们的新名称作为path参数。有人可以帮我解决这个问题吗?谢谢!

import os

directory = "/../"
dirs = next(os.walk(directory))[1]
for file in dirs:
    path = os.path.join(directory, file)
    target = os.path.join(directory, '/' + file.replace('.','/'))
    os.rename(path, target)

带有破折号的

[Errno 2] No such file or directory: '/Users/Kakadu/Desktop/dogs_vs_cel/MsCelebV1/MsCelebV1-Faces/m.01kk_s6' -> '/m/01kk_s6'

没有破折号

FileNotFoundError: [Errno 2] No such file or directory: '/Users/Kakadu/Desktop/dogs_vs_cel/MsCelebV1/MsCelebV1-Faces/m.01kk_s6' -> '/Users/Kakadu/Desktop/dogs_vs_cel/MsCelebV1/MsCelebV1-Faces/m/01kk_s6'

附言:当我将文件重命名为相同的名称时,文件存在并且os.rename可以正常工作。

 target = os.path.join(directory, file)
 os.rename(path, target)

顺便提一下,我正在尝试重命名目录(里面装满了图片),也许这里面有什么问题。另外,当我尝试对单个图片使用os.rename时,它可以正常工作。

1
请手动检查您的文件是否存在。 - Arpit Solanki
是的,我已经完成了所有这些事情。 - Ivan Shelonik
添加一个 if 来测试它们是否相等。 - Szabolcs Dombi
大小写问题可能吗? - Szabolcs Dombi
1个回答

1
当将某个东西重命名为/j/k/l/m/foo时,目录m存在非常重要。如果不存在,则必须创建m目录(mkdir m)。
在进行重命名调用之前,请执行以下操作:
    os.makedirs(os.path.dirname(target), exist_ok=True)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接