python - os.rename [Errno 2] 没有那个文件或目录

标签 python python-3.x python-os

我尝试在 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'

P.S 文件存在并且当我将文件重命名为相同名称时 os.rename 起作用

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

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

最佳答案

重命名为/j/k/l/m/foo 时,重要的是 directory m exists .如果没有,你必须 mkdir m。

就在您的重命名调用之前,执行以下操作:

    os.makedirs(os.path.dirname(target), exist_ok=True)

关于python - os.rename [Errno 2] 没有那个文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44631449/

相关文章:

python - “输入”两个具有最低复杂度的排序列表

python - 使用 python http.client 访问 korbit api

python-3.x - python 3 : File is being used by another process

python - 扫描文件夹时出现各种错误

python - 按不同数量移动 numpy 数组中的值

python - tensorflow compute_weighted_loss示例

Python 3.8 脚本在获取数据库连接(psycopg2 和多处理)时卡住 - Windows 7

python-3.x - Keras 中的 model.evaluate() 未覆盖所有数据点

python os.rename目录不为空

python - django 中的表单验证