尝试将jpg文件提取到numpy数组中时如何处理“ OSError:获取第一个字节后无法找回”

时间:2019-02-12 14:53:54

标签: python jupyter-notebook zipfile

我正在尝试将zip文件中的所有图像收集到一个numpy数组中。

总是出现错误: OSError:获取第一个字节后无法找回!

import urllib.request
import os
import zipfile
import scipy
import numpy as np
import pandas as pd
import glob
import imageio
from os.path import splitext

url = 'https://github.com/yoavram/Sign-Language/raw/master/Dataset.zip'
filename = '../data/sign-lang'
if not os.path.exists('../data'):
    os.mkdir('../data')
if not os.path.exists(filename):
    urllib.request.urlretrieve(url, filename)

zf = zipfile.ZipFile(filename)

for file in zf.namelist():
    basename,extension = splitext(file)
    if extension == '.jpg':
        with zf.open(file) as img_file:
            img = imageio.read(img_file)

帮助?

1 个答案:

答案 0 :(得分:1)

我在最长的时间内遇到过类似的问题。

问题是imageio.read()期望字节,但是提供了文件类型对象。

要解决此问题,只需从文件中读取字节即可。

img = imageio.read(img_file.read())

此外,如果要使用numpy数组,则应使用imageio.imread()