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

Pathlib调用mkdir抛出FileExistsError但目标路径实际不存在

问题原因

pathlib.Path默认不会自动解析路径中的波浪号~为当前用户的home目录,你传入带~的路径时,Python会将~识别为普通目录名,在脚本运行的当前工作目录下创建~子目录,再在其中生成.local/share/mark_py的层级结构,而非在你预期的用户家目录下创建目录。
对应你遇到的现象解释:

  • 首次执行无报错:当前工作目录下成功创建了./~/.local/share/mark_py路径,你在家目录下查找对应路径自然找不到生成的目录
  • 第二次执行抛出FileExistsError:第一次已经在当前工作目录下生成了对应路径,mkdir()默认不允许重复创建已存在的目录,因此触发异常

你可以进入脚本执行时的工作目录,即可看到名为~的子目录,内部就是之前创建的目录结构。

修复方案

调用Path对象的expanduser()方法完成波浪号的路径解析,同时可以添加exist_ok=True参数避免重复执行时报错,修改后代码如下:

from pathlib import Path
data_path = Path("~/.local/share/mark_py").expanduser()
data_path.mkdir(exist_ok=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:06:03