gpt4 book ai didi

python - OSError : Directory not empty raised, 如何修复?

转载 作者:太空狗 更新时间:2023-10-29 22:08:24 40 4
gpt4 key购买 nike

我只是想写一个小应用程序,它从名为“DATA.DAT”的文件中获取一个值,并用该值重命名包含该文件的文件夹。

.py 脚本在另一个文件夹中运行,并允许用户定义路径。为了给您一个更好的主意,用户定义的路径必须类似于(在 Mac 上)“/Users/User/Desktop/FOLDER”,并且“FOLDER”应包含“DATA.DAT”。

源代码的一小部分是这样的:

try:
data = open('DATA.DAT').read()

data_data = data[12:17]
path_paths = path.rsplit('/')
basepath = '/'.join(path_paths[:-1])
chdir(basepath)

if path_paths[-1] <> data_data:
rename(path_paths[-1], data_data)
raw_input('Folder name has been corrected! Thank you.')
quit()
else:
print('Folder name was already correct! Thank you.')
quit()
except IndexError:
raw_input('ERROR!')
quit()

好吧,它有效;但是当“FOLDER”包含多个文件时它会引发异常(实际上,“FOLDER”应该只包含“DATA.DAT”和其他文件夹。这不会产生问题。)...

Traceback (most recent call last):
File "/Users/User/Desktop/example.py", line 72, in <module>
rename(path_paths[-1], data_data)
OSError: [Errno 66] Directory not empty

为了防止这种情况发生,有没有办法解决它?谢谢。

最佳答案

编辑:正确的工具是shutil.move :

shutil.move(path_paths[-1], data_data)

假设 path_paths[-1] 是您要重命名的绝对目录,data_data 是您要重命名的绝对目录名称。

目标目录必须不存在才能正常工作。这两个位置不需要在同一个文件系统上。


旧答案:使用 os.renames而不是 os.rename

它将递归地创建任何需要的目录。

关于python - OSError : Directory not empty raised, 如何修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487307/

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