现象
如果判断不存在目录,则创建目录时遇到的问题:
- 若不存在一级目录,而直接创建二级及以上目录,则提示FileNotFoundError: [WinError 3] 系统找不到指定的路径。
直接创建二级目录log/demo1
import os
path1 = "log/demo1"
if os.path.exists(path1) == False:
os.mkdir(path1)
- 若仅创建一级目录,是没问题的。
import os
path1 = "log"
if os.path.exists(path1) == False:
os.mkdir(path1)
解决方法
目前想到的原因是python判断目录存在可能是一层一层判断,判断一级目录存在的前提下再判断二级及以上目录,若一级目录不存在则后面的目录再判断会直接出错。
- 改为先判断一级目录,再判断二级目录,保证一级目录创建的前提下再创建二级目录:
import os
path1 = "log"
if os.path.exists(path1) == False:
os.mkdir(path1)
path2 = path1 + "/demo1"
if os.path.exists(path2) == False:
os.mkdir(path2)
结论
python调用os.path.exists(path)方法只有在前一级目录存在的情况下,才能进行后面目录的判断,否则会异常,因此需要一层一层目录创建。