Python 3.5: 打开文件名带下划线的图片?
Python 3.5: Open an image with underscore in file name?
我有一个脚本(如下所示)可以打开一组图像。我花了一段时间才弄明白这一点,但我意识到该脚本似乎无法打开名称中带有下划线的任何图像文件。我的图片目录示例如下:
Images\img1.jpg
Images\img2.jpg
Images\img3_c.jpg
脚本在处理 "normal" 图像文件名时将按预期运行。当脚本必须打开名称中带有下划线的文件时,returns 出现如下错误:
OSError: cannot identify image file <_io.BufferedReader name='TrainingSets\CottonWoolSpots\0006_c.jpg'>
我想尽可能避免更改我的文件名。任何帮助表示赞赏。
脚本:
import numpy as np
from skimage import io
import glob
import os
def importAllImgs():
imagePath = glob.glob("TrainingSets\CottonWoolSpots\*.jpg")
im_coll = io.ImageCollection(imagePath)
im_array = []
for i in range(len(im_coll)):
image = im_coll[i]
im_array.append(image)
return im_array
if __name__ == "__main__":
testArray = importAllImgs()
编辑完整的堆栈跟踪 + 错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 734, in debugfile
debugger.run("runfile(%r, args=%r, wdir=%r)" % (filename, args, wdir))
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\bdb.py", line 431, in run
exec(cmd, globals, locals)
File "<string>", line 1, in <module>
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile
execfile(filename, namespace)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 89, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "//mspm1bnas50s/home58/biegad1/python scripts/batchimportimgs_0_1.py", line 54, in <module>
testArray = importAllImgs()
File "//mspm1bnas50s/home58/biegad1/python scripts/batchimportimgs_0_1.py", line 36, in importAllImgs
image = im_coll[i]
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\skimage\io\collection.py", line 264, in __getitem__
self.data[idx] = self.load_func(self.files[n], **kwargs)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\skimage\io\_io.py", line 61, in imread
img = call_plugin('imread', fname, plugin=plugin, **plugin_args)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\skimage\io\manage_plugins.py", line 211, in call_plugin
return func(*args, **kwargs)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\skimage\io\_plugins\pil_plugin.py", line 36, in imread
im = Image.open(f)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\PIL\Image.py", line 2309, in open
% (filename if filename else fp))
OSError: cannot identify image file <_io.BufferedReader name='TrainingSets\CottonWoolSpots\0006_c.jpg'>
好的!所以。看来我一直在处理损坏的图像文件,因此出现了错误。
我有一个脚本(如下所示)可以打开一组图像。我花了一段时间才弄明白这一点,但我意识到该脚本似乎无法打开名称中带有下划线的任何图像文件。我的图片目录示例如下:
Images\img1.jpg
Images\img2.jpg
Images\img3_c.jpg
脚本在处理 "normal" 图像文件名时将按预期运行。当脚本必须打开名称中带有下划线的文件时,returns 出现如下错误:
OSError: cannot identify image file <_io.BufferedReader name='TrainingSets\CottonWoolSpots\0006_c.jpg'>
我想尽可能避免更改我的文件名。任何帮助表示赞赏。
脚本:
import numpy as np
from skimage import io
import glob
import os
def importAllImgs():
imagePath = glob.glob("TrainingSets\CottonWoolSpots\*.jpg")
im_coll = io.ImageCollection(imagePath)
im_array = []
for i in range(len(im_coll)):
image = im_coll[i]
im_array.append(image)
return im_array
if __name__ == "__main__":
testArray = importAllImgs()
编辑完整的堆栈跟踪 + 错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 734, in debugfile
debugger.run("runfile(%r, args=%r, wdir=%r)" % (filename, args, wdir))
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\bdb.py", line 431, in run
exec(cmd, globals, locals)
File "<string>", line 1, in <module>
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 714, in runfile
execfile(filename, namespace)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 89, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "//mspm1bnas50s/home58/biegad1/python scripts/batchimportimgs_0_1.py", line 54, in <module>
testArray = importAllImgs()
File "//mspm1bnas50s/home58/biegad1/python scripts/batchimportimgs_0_1.py", line 36, in importAllImgs
image = im_coll[i]
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\skimage\io\collection.py", line 264, in __getitem__
self.data[idx] = self.load_func(self.files[n], **kwargs)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\skimage\io\_io.py", line 61, in imread
img = call_plugin('imread', fname, plugin=plugin, **plugin_args)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\skimage\io\manage_plugins.py", line 211, in call_plugin
return func(*args, **kwargs)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\skimage\io\_plugins\pil_plugin.py", line 36, in imread
im = Image.open(f)
File "C:\Users\biegad1\AppData\Local\Continuum\Anaconda3\lib\site-packages\PIL\Image.py", line 2309, in open
% (filename if filename else fp))
OSError: cannot identify image file <_io.BufferedReader name='TrainingSets\CottonWoolSpots\0006_c.jpg'>
好的!所以。看来我一直在处理损坏的图像文件,因此出现了错误。