You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python创建目录时如何忽略已存在目录解决FileExistsError报错

报错原因

你的代码有两处逻辑错误直接触发异常:

  • 外层的路径判断完全无效:你直接把整个names列表拼接到路径字符串里,生成的是../database/['Abby','Betty','Bella','Peter','Jack','Sonya']这种不存在的非法路径,所以外层if判断永远会走到else的创建分支,根本起不到提前检测的作用。
  • 存在检测没有和循环创建逻辑绑定:你只在循环外做了一次无效检测,循环创建每个文件夹时没有单独判断对应路径是否存在,只要某一个名字的文件夹已经提前创建过,os.makedirs默认就会抛出FileExistsError中断运行。
修正代码

把存在校验挪到循环内,对每个名称对应的文件夹单独做检测,同时给os.makedirs加上exist_ok=True做兜底,避免文件系统竞态(比如你检测完路径不存在、准备创建的间隙,刚好有其他程序创建了同路径文件夹的极端情况),代码如下:

import os

names = ['Abby','Betty','Bella','Peter','Jack','Sonya']
base_dir = '../database'
for name in names:
    target_folder = os.path.join(base_dir, name)
    if os.path.exists(target_folder):
        print(f'{name} folder exists')
    else:
        os.makedirs(target_folder, exist_ok=True)

如果你需要的是「只要有任意一个名称文件夹存在就打印一次提示」,而不是逐个文件夹打印存在提示,可以在循环前加个标记位累计存在状态,循环结束后统一判断打印即可,核心的逐路径校验、exist_ok兜底的逻辑不变。

内容的提问来源于stack exchange,提问作者Lil_coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:57:16