os.mkdir()与os.makedirs()的异同及出现FileNotFoundError: [WinError 3] 系统找不到指定的路径。

目录

  • 一、 问题分析
  • 二、makedirs和mkdir的不同

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() 即可,改完后运行结果如下图所示:

os.mkdir()与os.makedirs()的异同及出现FileNotFoundError: [WinError 3] 系统找不到指定的路径。_第1张图片

二、makedirs和mkdir的不同

  1. 首先说os.mkdir(path),他的功能是一级一级的创建目录,前提是前面的目录已存在,如果不存在会报异常,比较麻烦,但是存在即有他的道理,当你的目录是根据文件名动态创建的时候,你会发现他虽然繁琐但是很有保障,不会因为你的一时手抖,创建而创建了双层或者多层错误路径,
import os
 
os.mkdir('d:\hello')    #  正常
os.mkdir('d:\hello\hi') #  正常
 
#  如果d:\hello目录不存在
#  则os.mkdir('d:\hello\hi')执行失败
  1. 然后是os.makedirs(path),单从写法上就能猜出他的区别,他可以一次创建多级目录,哪怕中间目录不存在也能正常的(替你)创建,想想都可怕,万一你中间目录写错一个单词…
import os
 
os.makedirs('d:\hello')    #  正常
os.makedirs('d:\hello\hi') #  正常
 
#  如果d:\hello目录不存在
#  则os.makedirs('d:\hello\hi')  #  仍然正常

各有优缺点,根据自己需要选择使用。

你可能感兴趣的:(Python标准库使用,bug,python)