我有一堆包含numpy数组的文件在某个url(例如,https://my_url/my_np_file.npy
),我试图将它们加载到我的计算机中。
如果我手动下载文件,我可以使用np.load('file_path')
正确加载numpy数组。如果我接受url响应(使用下面的代码),保存内容到文件中,然后使用np.load()
,它也可以工作。
response, content = http.request('https://my_url/my_np_file.npy')
字符串
如果我尝试从内容字符串加载数组,我会得到下面的错误。这可能是因为np.load
将字符串输入解释为文件的名称,而不是数据本身。
File“/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py“,line 370,in load = open(file,“rb”)TypeError:file()argument 1 must be encoded string without null bytes,not str
有没有什么方法可以在不保存文件的情况下加载阵列?
3条答案
按热度按时间gojuced71#
您缺少了
io.BytesIO
,使字符串对np.load
来说看起来像一个文件对象!以下是您正在寻找的内容:
字符串
ohfgkhjo2#
我刚刚使用
shutil
制定了一个解决方案字符串
这将首先下载文件本身,但以自动方式。
edqdpe6u3#
你能添加一个HTTP响应的例子吗?(来自
https://my_url/my_np_file.npy
)也许你可以尝试
np.fromstring
后,你检索的网页响应。这是上述参考文献中的一个例子。
字符串