为了账号安全,请及时绑定邮箱和手机立即绑定

将 h5py 文件上传到 aws 并再次下载

将 h5py 文件上传到 aws 并再次下载

红糖糍粑 2021-11-09 14:33:30
我一直无法找到明确的解决方案,所以希望这个问题将来对其他人有用。基本上我正在创建一个 h5py 对象,如下所示:keys_d = [matrix_l2T.data, matrix_l2T.indices, matrix_l2T.indptr]keys_n = ['data', 'indices', 'indptr' ]file_to_save = h5py.File(FILENAME)for i,j in zip(keys_n, keys_d):    file_to_save.create_dataset(i, data = j)上传到 AWS 如下:s3 = boto3.client('s3')s3.upload_file(Filename = FILENAME, Key = KEY, Bucket = BUCKET)下载方式如下:s3 = boto3.resource('s3')try:s3.Bucket(BUCKET_NAME).download_file(KEY, FILENAME) except botocore.exceptions.ClientError as e:if e.response['Error']['Code'] == "404":    print("The object does not exist.")else:    raise然后我尝试以各种方式打开这个文件,但似乎没有错误地执行它。我试过了:h5py.File(FILENAME,'r')我得到了:OSError: Unable to open file (bad object header version number)我也试过:with open(FILENAME, 'rb') as f:   a = f.read()我需要 rb,因为没有它我得到 'utf-8' 编解码器无法解码位置 0 的字节 0x89:无效的起始字节。最后一段代码返回二进制代码,我不确定接下来应该做什么。
查看完整描述

1 回答

?
开满天机

TA贡献1786条经验 获得超12个赞

我解决了这个问题。我没有关闭 h5py 文件。一个需要添加

file_to_save.close()

在上传到 aws 之前


查看完整回答
反对 回复 2021-11-09
  • 1 回答
  • 0 关注
  • 1033 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信