1
是否有加載/讀取numpy中的外部文件(即AWS S3)?我有幾個存儲在S3中的npy文件。我試圖通過S3 presigned url來訪問它們,但似乎numpy.load方法或np.genfromtxt都無法讀取它們。從Python中加載npy文件
我不想保存本地文件系統上的文件,然後將它們加載到numpy上。
有什麼想法?
是否有加載/讀取numpy中的外部文件(即AWS S3)?我有幾個存儲在S3中的npy文件。我試圖通過S3 presigned url來訪問它們,但似乎numpy.load方法或np.genfromtxt都無法讀取它們。從Python中加載npy文件
我不想保存本地文件系統上的文件,然後將它們加載到numpy上。
有什麼想法?
我成功使用了boto和StringIO。 使用boto連接到S3並獲得您的存儲桶。然後用以下代碼將文件讀入numpy:
import numpy as np
from StringIO import StringIO
key=bucket.get_key('YOUR_KEY')
data_string=StringIO(key.get_contents_as_string())
data = np.load(data_string)
我不確定這是最有效的方法,但它不需要公共URL。
乾杯, 邁克爾
當然,你需要一些額外的層做所有的網絡協議的工作! Numpy的IO可能僅適用於基於文件的IO。在Python3中,你可以嘗試'''導入請求; import BytesIO; request = requests.get(url); np.load(BytesIO(request.content))'''。 – sascha
當然,我的代碼片斷假定S3鏈接是公共的,不需要身份驗證。我不知道情況是否如此。如果沒有,你需要一些庫來完成這個文件的訪問。 – sascha
你能夠使用'requests'讀取文件嗎? –