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


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 的不同

  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')  #  仍然正常

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

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
这个错误是由于系统不到指定路径导致的。根据引用\[1\]中的解释,可能是因为当前的Python文件和你要的文件夹不在同一个目录下。你可以尝试修改代码中的相对路径,将"./"改为". ./",例如将"../datasets/train/trainA"改为"../datasets/train/trainA"。这样可以解决路径不到的问题。另外,引用\[2\]中提到,Python判断目录存在的方式是一层一层判断,如果一级目录不存在,后面的目录判断就会直接出错。所以你可以先判断一级目录是否存在,再判断二级目录,以确保目录的正确创建。例如,你可以使用以下代码来创建目录: ```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) ``` 这样可以避免系统不到指定路径的错误。希望这些解释对你有帮助。 #### 引用[.reference_title] - *1* [FileNotFoundError: [WinError 3] 系统不到指定路径。: ‘./datasets/train/trainA‘](https://blog.csdn.net/jstlovely/article/details/115382313)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [FileNotFoundError: [WinError 3] 系统不到指定路径。的解决方法](https://blog.csdn.net/yyz0300/article/details/129362559)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值