猿问

在一个目录下创建多个文件夹

我想在自己内部创建多个文件夹。如果我有 3 个文件夹,我想在我的桌面上相互嵌套。'C:/Users/User/Desktop/folder_a/folder_b/folder_c/'我想按照我目前的方式创建目录,这是我多次os.path.exists()调用 。os.mkdir()有没有办法做到这一点而不必多次调用这些?


import os


DIR = 'C:/Users/User/Desktop/folder_a/folder_b/folder_c/'

if not os.path.exists(DIR):

    os.mkdir(DIR)

DIR = DIR + 'folder_b/'

if not os.path.exists(DIR):

    os.mkdir(DIR)

DIR = DIR + 'folder_c/'

if not os.path.exists(DIR):

    os.mkdir(DIR)


慕容3067478
浏览 177回答 2
2回答

largeQ

所以我们只需要做一个检查 :)如果不存在folder_b则不能存在。folder_a这将我们带到了第二种情况。为此,我们忽略了再次进行适当的检查,但如果两者都不存在,则exist_ok=True包含和“folder_c”。folder_b选项1:from os import (    makedirs,    path,)dir_path = 'C:/Users/User/Desktop/folder_a/{}'if path.exists(dir_path):    makedirs(        dir_path.format(            'folder_b/folder_c/',        )    )选项 2:from os import makedirsdir_path = 'C:/Users/User/Desktop/folder_a/folder_b/folder_c'makedirs(dir_path)

智慧大石

我为你写了一个递归函数:import osDIR = './folder_a/folder_b/folder_c/'def make_nested_folders(DIR):  print(DIR)  if "/" in DIR:    DIR, last = DIR.rsplit("/", 1)    make_nested_folders(DIR)  else:    last = DIR  if last and not os.path.exists(last):    os.mkdir(last)make_nested_folders(DIR)
随时随地看视频慕课网APP

相关分类

Python
我要回答