Python操作系统:[Errno 13]权限被拒绝

时间:2020-01-09 12:01:33

标签: python path permissions

我正在尝试建立一个深度学习网络(https://github.com/MIC-DKFZ/nnUNet)来处理自己的数据集,而路径却遇到了麻烦。我使用了几种方法来定义我的路径。作者为此问题导入了以下软件包:

import os

from batchgenerators.utilities.file_and_folder_operations import maybe_mkdir_p, join

为此,我分别尝试了以下几行:

base = os.environ["nnUNet_base"]

base = join("Tortuosity", "nnUNet_base")

base = "Tortuosity/nnUNet_base"

我在nnUNet_base目录中有Tortuosity目录。使用第一种方法时,似乎没有正确注册目录(我要求print("base =", base)并得到None作为回报。对于第二种和第三种方法,我得到以下错误:

Traceback (most recent call last):
  File "experiment_planning/plan_and_preprocess_task.py", line 18, in <module>
    from nnunet.paths import base,splitted_4d_output_dir, cropped_output_dir, preprocessing_output_dir, raw_dataset_dir, network_training_output_dir
  File "/home/pere/anaconda3/envs/nnunet_env/nnUNet/nnunet/paths.py", line 51, in <module>
    maybe_mkdir_p(splitted_4d_output_dir)
  File "/home/pere/anaconda3/envs/nnunet_env/lib/python3.6/site-packages/batchgenerators/utilities/file_and_folder_operations.py", line 40, in maybe_mkdir_p
    os.mkdir(os.path.join("/", *splits[:i+1]))
PermissionError: [Errno 13] Permission denied: '/nnUNet_base'

在这种情况下,我不知道如何降低权限。请帮忙,我应该怎么做才能有效地定义案件路径?我正在Mac上使用Ubuntu 16.04运行VM。

谢谢!

1 个答案:

答案 0 :(得分:0)

错误说明:

os.mkdir(os.path.join("/", *splits[:i+1]))

这意味着该路径位于/下,而不位于主目录中。在Nunet的注释中写入了仅使用绝对路径的修复程序。

base = "/home/pere/Tortuosity/nnUNet_base"

如果Tortuosity直接位于您的主文件夹中。