FileNotFoundError: [WinError 3] 系统找不到指定的路径。
一、 问题分析
1、在使用 os.mkdir() 时,有时候报错系统会找不到指定路径。
例如:我的工作目录如下图所示:
这是我的目录,想要达到的效果:在目录’F:/Program Files/Pycharm Projects/get_table_name’
下,再新建两级目录’./localFiles/8975817312076800’
使用 os.mkdir()
会报如下错误:
其中的一个原因是因为 os.mkdir() 只能创建一级目录,应该用 os.makedirs() 创建多级目录。
2、将代码改为 os.makedirs() 即可,改完后运行结果如下图所示:
二、makedirs 和 mkdir 的不同
- 首先说os.mkdir(path),他的功能是一级一级的创建目录,前提是前面的目录已存在,如果不存在会报异常,比较麻烦,但是存在即有他的道理,当你的目录是根据文件名动态创建的时候,你会发现他虽然繁琐但是很有保障,不会因为你的一时手抖,创建而创建了双层或者多层错误路径,
import os
os.mkdir('d:\hello') # 正常
os.mkdir('d:\hello\hi') # 正常
# 如果d:\hello目录不存在
# 则os.mkdir('d:\hello\hi')执行失败
- 然后是os.makedirs(path),单从写法上就能猜出他的区别,他可以一次创建多级目录,
哪怕中间目录不存在也能正常的(替你)创建
,想想都可怕,万一你中间目录写错一个单词…
import os
os.makedirs('d:\hello') # 正常
os.makedirs('d:\hello\hi') # 正常
# 如果d:\hello目录不存在
# 则os.makedirs('d:\hello\hi') # 仍然正常
各有优缺点,根据自己需要选择使用。