当我在 jupyter notebook 里想展现一张图片时,我应用了以下代码:
import matplotlib.pyplot as plt
import skimage.io as io
path = "E:\pythonFiles\YOLOX\YOLOX_outputs\yolox_l\vis_res\2022_06_06_16_26_36\dog.jpg"
image = io.imread(path)
plt.imshow(image)
而后 jupyter notebook 给出了报错:
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
~\AppData\Local\Temp\ipykernel_1280\1200427059.py in <module>
3
4 path = "E:\pythonFiles\YOLOX\YOLOX_outputs\yolox_l\vis_res\2022_06_06_16_26_36\dog.jpg"
----> 5 image = io.imread(path)
6 plt.imshow(image)
~\AppData\Roaming\Python\Python37\site-packages\skimage\io\_io.py in imread(fname, as_gray, plugin, **plugin_args)
51
52 with file_or_url_context(fname) as fname:
---> 53 img = call_plugin('imread', fname, plugin=plugin, **plugin_args)
54
55 if not hasattr(img, 'ndim'):
~\AppData\Roaming\Python\Python37\site-packages\skimage\io\manage_plugins.py in call_plugin(kind, *args, **kwargs)
205 (plugin, kind))
206
--> 207 return func(*args, **kwargs)
208
209
~\AppData\Roaming\Python\Python37\site-packages\skimage\io\_plugins\imageio_plugin.py in imread(*args, **kwargs)
8 @wraps(imageio_imread)
9 def imread(*args, **kwargs):
---> 10 return np.asarray(imageio_imread(*args, **kwargs))
~\AppData\Roaming\Python\Python37\site-packages\imageio\__init__.py in imread(uri, format, **kwargs)
95 )
96
---> 97 return imread_v2(uri, format=format, **kwargs)
98
99
~\AppData\Roaming\Python\Python37\site-packages\imageio\v2.py in imread(uri, format, **kwargs)
198 imopen_args["legacy_mode"] = True
199
--> 200 with imopen(uri, "ri", **imopen_args) as file:
201 return file.read(index=0, **kwargs)
202
~\AppData\Roaming\Python\Python37\site-packages\imageio\core\imopen.py in imopen(uri, io_mode, plugin, extension, format_hint, legacy_mode, **kwargs)
116 request.format_hint = format_hint
117 else:
--> 118 request = Request(uri, io_mode, format_hint=format_hint, extension=extension)
119
120 source = "<bytes>" if isinstance(uri, bytes) else uri
~\AppData\Roaming\Python\Python37\site-packages\imageio\core\request.py in __init__(self, uri, mode, extension, format_hint, **kwargs)
246
247 # Parse what was given
--> 248 self._parse_uri(uri)
249
250 # Set extension
~\AppData\Roaming\Python\Python37\site-packages\imageio\core\request.py in _parse_uri(self, uri)
405 # Reading: check that the file exists (but is allowed a dir)
406 if not os.path.exists(fn):
--> 407 raise FileNotFoundError("No such file:'%s'" % fn)
408 else:
409 # Writing: check that the directory to write to does exist
FileNotFoundError: No such file: 'E:\pythonFiles\YOLOX\YOLOX_outputs\yolox_l is_res 2_06_06_16_26_36\dog.jpg'
独自看报错的最初一行:
FileNotFoundError: No such file: 'E:\pythonFiles\YOLOX\YOLOX_outputs\yolox_l is_res 2_06_06_16_26_36\dog.jpg'
本次报错最重要的是最初一行,这其实是在阐明,零碎读取到的门路与咱们本人输出的门路并不一样,所以才没有读取到相应的文件,那么为什么不一样呢?我感觉大略是因为 \v ,\t,\s 这样的字眼自身有其非凡的意义,放在字符串里时变成了占位符,所以产生了这样的谬误。
解决办法也很简略,间接应用两个斜杠即可。
也就是说将原来的门路:
E:\pythonFiles\YOLOX\YOLOX_outputs\yolox_l\vis_res\2022_06_06_16_26_36\dog.jpg
改写成:
E:\pythonFiles\YOLOX\YOLOX_outputs\yolox_l\\vis_res\\2022_06_06_16_26_36\dog.jpg