python - 如何将数组编码为base64将其保存到文件然后读取并解码
问题描述
我想对一些数据进行base64编码,将其存储在一个文件中,然后再读取它。我想使用 binascii 库,但它似乎没有完成这项工作。基本上,编码为 64 的方法也不会真正返回字符串,而是返回字节数组。如何获得实际的 base64 字符串?
下面是显示问题的代码
myArray = np.array([[1, 2, 3],[4, 5, 6]])
serializedArray = binascii.b2a_base64(myArray, newline = False)
with open("Output.txt", "w") as text_file:
text_file.write(str(serializedArray))
with open("Output.txt", "r") as text_file:
readFromFile = text_file.read()
print(serializedArray)
print(readFromFile)
print(len(serializedArray))
print(len(readFromFile))
解决方案
在这种情况下,使用读取和写入文件bytes
会简单得多。
import numpy as np
import binascii
myArray = np.array([[1, 2, 3],[4, 5, 6]], dtype=np.float64)
print(myArray)
serializedArray = binascii.b2a_base64(myArray, newline = False)
with open("Output.txt", "wb") as text_file:
text_file.write(serializedArray)
with open("Output.txt", "rb") as text_file:
readFromFile = text_file.read()
print(type(serializedArray))
print(type(readFromFile))
print(serializedArray)
print(readFromFile)
a = binascii.a2b_base64(readFromFile)
decoded_array = np.frombuffer(a, dtype=np.float64)
print(decoded_array)
推荐阅读
- python - 从 GitHub 安装 Scikit-learn 扩展
- html - html 代码在 Outlook 电子邮件中的输出与在浏览器中的输出不同
- python - 如何从熊猫数据框行创建列表?
- c# - 循环中的线程池队列用户工作项 | 拆分为子线程
- vb.net - 实体框架 SaveChanges() 不起作用?
- ios - Swift 如何让拨号器打开并显示电话号码?
- c# - 无法从表达式转换
> 到表达式 > 当 T = 类内的用户时 - oauth-2.0 - 如何在 PowerBI 服务中使用自定义 OAuth2 连接器为 Google 电子表格启用计划刷新?
- typescript - Typescript - 通过第二种属性类型推断属性类型
- python - 将 GeoDataframe 转换为 numpy 数组