Python:使用二进制文件传输两字节变量

Python:使用二进制文件传输两字节变量,python,arrays,file,byte,python-3.5,Python,Arrays,File,Byte,Python 3.5,比如说我有两个bytearray b = bytearray(b'aaaaaa') b1 = bytearray(b'bbbbbb') file_out = open('bytes.bin', 'ab') file_out.write(b) file_out.write(b1) 此代码将创建一个包含两个ByteArray的.bin文件 如何读取此文件并存储这两个变量并将其解码回字符串 我的目标是通过创建文件将这些字节传输给其他程序读取。我不确定这个bytearray+附加是否是个好主意 感谢P

比如说我有两个bytearray

b = bytearray(b'aaaaaa')
b1 = bytearray(b'bbbbbb')
file_out = open('bytes.bin', 'ab')
file_out.write(b)
file_out.write(b1)
此代码将创建一个包含两个ByteArray的.bin文件

如何读取此文件并存储这两个变量并将其解码回字符串

我的目标是通过创建文件将这些字节传输给其他程序读取。我不确定这个bytearray+附加是否是个好主意

感谢

Pythons是用来存储和检索对象的

它将负责内容的编码和解码

您可以在您的案例中使用它,如下所示

import pickle

b = bytearray(b'aaaaaa')
b1 = bytearray(b'bbbbbb')

# Saving the objects:
with open('objs.pkl', 'wb') as f:  
    pickle.dump([b, b1], f)

# Getting back the objects:
with open('objs.pkl') as f:  
    b, b1 = pickle.load(f)

您可以从其他问题中找到更多详细信息

技巧在于读取文件以确定b结束和b1开始的位置。当你打开它时也使用“ab”,这是否意味着你第二次运行此代码时,它会将其添加到末尾?@GregHNZ确切地说,我第二次运行此代码时,它会将其添加到末尾。我猜,当bytes.bin被读取并转换为字符串时,它将显示b'0x\31\……'关于b结束和b1开始的位置,您是对的。我的想法是使用bytes delimter,但是我看不出使用bytearray有什么意义。