为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容3067478 2023-04-11 15:48:00
我想在自己内部创建多个文件夹。如果我有 3 个文件夹,我想在我的桌面上相互嵌套。'C:/Users/User/Desktop/folder_a/folder_b/folder_c/'我想按照我目前的方式创建目录,这是我多次os.path.exists()调用 。os.mkdir()有没有办法做到这一点而不必多次调用这些?import osDIR = '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)
查看完整描述

2 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

所以我们只需要做一个检查 :)如果不存在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 makedirs


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

makedirs(dir_path)


查看完整回答
反对 回复 2023-04-11
?
智慧大石

TA贡献1946条经验 获得超3个赞

我为你写了一个递归函数:


import os


DIR = './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)


查看完整回答
反对 回复 2023-04-11
  • 2 回答
  • 0 关注
  • 176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信