当前位置:首页 >> 脚本专栏

解决Python在导入文件时的FileNotFoundError问题

例如,在运行这段代码时

from keras.utils import plot_model
plot_model(model, to_file='images/model_mnist.png', show_shapes=True, show_layer_names=True)

会报错

In [8]: FileNotFoundError: [Errno 2] No such file or directory: 'images/model_mnist.png'

此时运行的py文件名称为

temp.py

要导入的文件在temp.py的同级的目录images文件夹下那么应该保证要导入的文件

imagesmodel_mnist.png

要跟前面的temp文件在同一目录(不满足,可把imagesmodel_mnist.png移到temp.py同一目录下)或者是提供要导入的文件的完整目录即写作绝对路径如下:

from keras.utils import plot_model
plot_model(model, to_file='C:/Users/MMIS/.spyder-py3/imagesmodel_mnist.png', show_shapes=True, show_layer_names=True)

再次尝试导入,控制台提示导入成功:

In [9]: plot_model(model, to_file='C:/Users/MMIS/.spyder-py3/images/model_mnist.png', show_shapes=True, show_layer_names=True)

补充知识:Python:错误FileNotFoundError: [Errno 2] No such file or directory: 'objects/epsilon.pkl

前言

看微信推送了一个好玩的应用强化学习dinosrun,但是在运行时,遇到了这个问题,百思不得其解:

FileNotFoundError: [Errno 2] No such file or directory: ‘objects/epsilon.pkl

经过学习,发现了解决方案:

解释

没有该文件夹或者该文件,也就是你访问了不存在的文件,但其实你访问的文件如果不存在,切访问用的是w方法的法,是会新建文档的,所以问题主要是,没有这个文件夹,新建即可。

详细解释

python,os库对于文件的读写,是有要求的。由于你的文件的打开方式是'w',也就是文件不存在时就创建文件,所以那个pkl文件(我指的是相对路径中的pkl)不存在会自动创建,这不是问题,问题就在于那个相对路径,就是那个path是否存在,这个文件夹不存在一样会出问题。所以先要判断这个path是否存在。不存在则创建。

import os
if not os.path.exists(path):
  os.mkdir(path)

而且需要注意,对于路径一次只能创建一层,就是说你objects的上一层的存在,不然还是会出错。

以上这篇解决Python在导入文件时的FileNotFoundError问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。