使用单个 os.mkdir 函数生成超过 1 个目录 (Python)

Generating more than 1 directory with a single os.mkdir function (Python)

我在 Python (WinOS) 中创建了一个函数,它最终创建了新目录(存储未来工作的地方)。所以在某些时候,我定义了目录并在我使用 os.mkdir(os.pahth.join('current_dir', 'new_dir1', 'new_dir2')) 之后。并且有效。

问题是这个函数在 Linux OS (Ubuntu) 上不起作用。在 Linux 我只能生成一个目录。即:

os.mkdir(os.path.join('current_dir', 'new_dir1', 'new_dir2')) returns 错误:

(OSError: [Errno 2] No such file or directory: '/[current_dir]/new_dir1/new_dir2')

但是:

os.mkdir(os.path.join('current_dir', 'new_dir1')) - 这有效,returns 单个目录

但我需要在 Linux 中创建 2 个目录,而不是一个...

我试过几个"easy combos"比如

new_dirs = os.path.join('new_dir1', 'new_dir2')
os.mkdir(os.path.join('current_dir', new_dirs)

returns同样的错误:

OSError: [Errno 2] No such file or directory: '/[current_dir]/new_dir1/new_dir2'

我所做的(和在 Linux 工作)是下一个:

#Generate the path for the output files
working_path = os.path.join(outfile_path, 'First_Corregistration', 'Split_Area', '') 
#Verify is the path exist, if not, create it.
if not os.path.exists(working_path):
    os.mkdir(working_path)

有人可以告诉我如何使用 Linux 创建 2 个或更多新目录(一个在另一个目录中)。我再次强调更奇怪的是:我当前的解决方案适用于 Windows,但不适用于 Linux.

而不是 os.mkdir 使用 os.makedirs,应该可以。 简单示例:

os.makedirs("brand/new/directory")

应该创建目录:brandnewdirectory

来自 https://docs.python.org/3/library/os.html#os.mkdirs :

Recursive directory creation function. Like mkdir(), but makes all intermediate-level directories needed to contain the leaf directory.