gpt4 book ai didi

python - os.rename 中找不到文件错误

转载 作者:太空宇宙 更新时间:2023-11-03 21:17:38 26 4
gpt4 key购买 nike

我正在尝试编写一个程序,根据文件名中指示的各自组将大量文件分类到文件夹中。我编写了以下代码,但是当我运行它时,它给我一个文件未找到错误,即使该文件位于给定路径中。如果您能帮助我找出问题所在,我将不胜感激。

import os

old_dir = '/Users/User/Desktop/MyFolder'

for f in os.listdir(old_dir):
file_name, file_ext = os.path.splitext(f)
file_name.split('-')

split_file_name = file_name.split('-')

new_dir = os.path.join(old_dir,
'-'.join(split_file_name[:3]),
split_file_name[5],
f)

os.rename(os.path.join(old_dir, f), new_dir)

错误如下:

Traceback (most recent call last):
File "/Users/User/Documents/Sort Files into Folders/Sort Files into Folders.py", line 19, in <module>
os.rename(os.path.join(old_dir, f), new_dir)
FileNotFoundError: [Errno 2] No such file or directory: '/Users/User/Desktop/MyFolder/AHA35-3_30x1_12-31-7d-g1a1-ArmPro.jpg' -> '/Users/User/Desktop/MyFolder/AHA35-3_30x1_12-31/ArmPro/AHA35-3_30x1_12-31-7d-g1a1-ArmPro.jpg

最佳答案

os.rename如果新名称恰好是不存在的目录中的文件名,则不会自动创建新目录(递归地)。

要首先创建目录,您可以(在 Python 3 中)使用:

os.makedirs(dirname, exist_ok=True)

其中 dirname 可以包含子目录(存在或不存在)。

<小时/>

或者,使用 os.renames ,可以处理新目录和中间目录。 From the documentation :

Recursive directory or file renaming function. Works like rename(), except creation of any intermediate directories needed to make the new pathname good is attempted first

关于python - os.rename 中找不到文件错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54564772/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com