如果文件夹不存在,则创建文件夹的工作流程

Raf*_*lGP 8 python

这个有趣的威胁中,如果目录不存在,用户会提供一些创建目录的选项。

得票最多的答案显然是最受欢迎的,我猜是因为它是最短的方法:

if not os.path.exists(directory):
    os.makedirs(directory)
Run Code Online (Sandbox Code Playgroud)

第二个答案中包含的功能似乎更强大,在我看来这是最好的方法。

import os
import errno

def make_sure_path_exists(path):
    try:
        os.makedirs(path)
    except OSError as exception:
        if exception.errno != errno.EEXIST:
            raise
Run Code Online (Sandbox Code Playgroud)

所以我想知道,人们在他们的脚本中做什么?键入 2 行只是为了创建一个文件夹?或者更糟糕的是,将函数复制并粘贴make_sure_path_exists到需要创建文件夹的每个脚本中?

我希望像 Python 这样广泛传播的编程语言已经有一个包含类似功能的库。

我所知道的其他 2 种编程语言更像是脚本语言,可以轻松做到这一点。

重击: mkdir -p path

电源外壳: New-Item -Force path

请不要将此问题视为对 Python 的咆哮,因为它不是那样的。

我打算学习 Python 来编写脚本,其中 90% 的时间我都必须创建文件夹,我想知道这样做的最有效方法是什么。

我真的认为我缺少关于 Python 的一些东西。

小智 22

你可以使用下面的

# file handler
import os
filename = "./logs/mylog.log"
os.makedirs(os.path.dirname(filename), exist_ok=True)
Run Code Online (Sandbox Code Playgroud)

  • @KasiaGauza但是评论不是答案,操作员不能接受评论作为答案,所以在这种情况下他的完整答案有什么问题? (4认同)

scy*_*ale 6

制作一个make_sure_path_exists在其中定义的模块。需要时导入。