我想生成包含字符串长度和字符串内容的字节序列
例如,对于字符串'hello'
,我想获得b'\x05hello'
在阅读了一些文档后,我写了一个函数:
def LenAndStrBytes(strdata):
return bytearray([len(strdata)&0xFF])+strdata if strdata!=[] else 0
问题:
我是python编程的新手,我想知道,哪些是最好的python实践来连接不同类型的数据,如int
和可迭代的东西,如bytearray
我是否以最佳方式编写了我的函数?
答案 0 :(得分:2)
嗯,只是larsmans指出,这取决于你的用法。如果您可以获得具有清晰代码和满足上下文限制的结果,那么这是一个很好的实践。
不需要&0xFF
,字节数组检查以确保0到255之间的值。
>>> strdata = 'hello'
>>> bytearray([len(strdata)]) + strdata if strdata else bytearray()
bytearray(b'\x05hello')
你也可以
import struct
bytearray(struct.pack('B%ds' % len(strdata), len(strdata), strdata))
答案 1 :(得分:0)
在将二进制数据写入文件(或通过网络发送)之前,您是否尝试将二进制数据序列化?
您是否想要使用pickle
module代替数据序列化?