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'

PS 文件存在并且当我将文件重命名为相同名称时 os.rename 有效

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

顺便说一句,我正在尝试重命名目录中的目录(充满图像),也许这里有一些东西。顺便说一句,当我尝试仅在图像上使用 os.rename 时(而不是在充满图像的目录上)它工作正常

4

1 回答 1

1

将某些内容重命名为 /j/k/l/m/foo 时,目录 m 存在很重要。如果没有,你必须 mkdir m。

就在您的重命名呼叫之前,请执行以下操作:

    os.makedirs(os.path.dirname(target), exist_ok=True)
于 2017-12-31T15:29:52.020 回答