将array或者json文件转化为pkl文件保存

 
 
        对于我们熟知的 pkl 文件,它具体优势以及适用范围是什么却不太明白,以前我们在读取文件的时候一般都用with open('xxx', 'r') as file:,其中r是用来打开文本类型文件,若要打开的是二进制类型文件,那就改为rb。因为文件主要分为 文本类型二进制类型pkl 文件则是二进制文件,其最主要的优势在于读取文件速度比其他例如json等格式快,通过import pickle来生成 pkl 文件;但pickle的协议特定于Python,因此不保证跨语言兼容性。

 


1. 将array转化为pkl文件

import numpy as np
import pickle

A = np.random.randn(2, 2)
with open('test', 'wb') as f:               #write
   pickle.dump(A, f)
   f.close()

with open('test', 'rb') as f:
   A = pickle.load(f, encoding='bytes')    #read
   f.close()
   print(A)

 


2. 将多个json文件转化为pkl文件

import pickle
import json

root = '/home/raywit/PycharmProjects/'

with open(root + 'training_xyz.json', 'r') as f:
   a = np.array(json.load(f))
with open(root + 'k.json', 'r') as f:
   fx = np.array(json.load(f))
with open(root + 'k1.json', 'r') as f:
   fy = np.array(json.load(f))
with open(root + 'training_verts.json', 'r') as f:
   gt = np.array(json.load(f))

list_data = {'training_xyz': a, 
            'k': fx, 
            'k1': fy, 
            'training_verts': gt}
with open("list_data", "wb") as fo:         #write
   pickle.dump(list_data, fo)
   fo.close()

with open("list_data", "rb") as fo:         #read
   A = pickle.load(fo, encoding='bytes')
   print(A['k'].shape)

注意: 上面则是先将json文件内容读取出来(我所用的json文件保存的是array,结构不复杂),再将内容转化为dict格式存到pkl中。

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值