首页 > 解决方案 > 如何将数组编码为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))  

标签: pythonbase64

解决方案


在这种情况下,使用读取和写入文件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)

推荐阅读