为什么在 Python 中为每个人创建具有完全读/写权限的文件夹时,不允许出现 Errno 1 操作?

TVM*_*TVM 7 python macos

所以我正在尝试制作我的第一个 python 程序来自动化我的任务。第一段代码来自 python 脚本,该脚本在预先指定的目的地创建一个新文件夹,然后将文件从其原始位置移动到新文件夹。这部分有效。该文件夹是这样创建的:

os.makedirs(new_folder, 0o777)
Run Code Online (Sandbox Code Playgroud)

new_folder 存储用户指定的要创建的文件夹的名称。

下一段代码来自另一个执行相反操作的脚本。它从新文件夹中获取文件并将它们移回原始文件夹,并成功执行此操作。然而,不起作用的是接下来应该发生的事情。一旦移回,它应该删除包含其内容的新文件夹。我试着用这个代码来做:

os.chdir(new_path)
os.remove(folder_name)
Run Code Online (Sandbox Code Playgroud)

og_path 只是一个变量,用于存储应删除的新文件夹的路径。folder_name 存储良好...文件夹的名称

当我运行第二个脚本的完整代码时,一切正常;然而,当它达到:

os.remove(folder_name)
Run Code Online (Sandbox Code Playgroud)

它给了我这个错误:

Traceback (most recent call last):
  File "/Users/TVM/Desktop/python/move_file/move_file_reverse.py", line  25, in <module>
os.remove(folder_name)
PermissionError: [Errno 1] Operation not permitted: 'lab3'
Run Code Online (Sandbox Code Playgroud)

附加变量信息:

 new_folder = "lab3"
 folder_name = "lab3"
 new_path = "/Users/TVM/Desktop/python/move_file/newloc"
Run Code Online (Sandbox Code Playgroud)

名为lab3的文件夹在文件夹newloc中

Paw*_*zko 8

You should use os.rmdir instead of os.remove.

os.mkdir('mydir')
os.rmdir('mydir')
os.path.exists('mydir')
Run Code Online (Sandbox Code Playgroud)


TVM*_*TVM 7

在评论@ShadowRanger建议使用shutil.rmtree()

我替换os.remove()shutil.rmtree()并且它有效。非常感谢@ShadowRanger