如何在Python中根据可能不存在的文件路径列表创建目录?

3 投票
1 回答
1674 浏览
提问于 2025-04-18 05:54

我想知道如何在Python中根据文件路径列表创建目录,这些路径可能存在也可能不存在。

我正在从s3下载一些文件,这些文件可能在某个目录中存在,也可能不存在。根据这些代表可能深层嵌套目录的键,我需要处理这些情况。

比如说,给定键 /a/number/of/nested/dirs/file.txt,我该如何创建 /a/number/of/nested/dirs/ 这个目录,如果它不存在的话,并且要做到这一点,不要花太多时间去检查列表中的每个文件。

我这样做是因为如果本地的父目录还不存在,get_contents_to_filename 就会出错。

我最终的解决方案使用了这个答案:

for file_with_path in files_with_paths:
    try:
        if not os.path.exists(file_with_path):
            os.makedirs(file_with_path)
        site_object.get_contents_to_filename(file_with_path)
    except:
        pass

1 个回答

5

你只需要使用 os.makedirs() 这个函数就可以了。它会自动创建所有需要的中间文件夹。

这个函数是用来递归创建文件夹的。它和 mkdir() 类似,但会创建所有需要的中间文件夹,以便能放下最终的文件夹。如果最终的文件夹已经存在或者无法创建,它会报错。默认的权限设置是 0777(八进制)。在某些系统上,这个权限设置可能会被忽略。在使用时,当前的 umask 值会先被处理掉。

撰写回答