1

我想生成包含字符串长度和字符串内容的字节序列。
例如,对于'hello'我想要获取的字符串,b'\x05hello'
在阅读了一些文档之后,我编写了一个函数:

def LenAndStrBytes(strdata):
  return bytearray([len(strdata)&0xFF])+strdata if strdata!=[] else 0

问题:
我是 python 编程的新手,我想知道,哪些是连接不同类型数据的最佳 python 实践,int比如bytearray
我是否以最佳方式编写了我的函数?

4

2 回答 2

2

好吧,只是 larsmans 指出,这取决于您的使用情况。如果您可以获得带有清晰代码并满足上下文限制的结果,那么这是一个很好的做法。

不需要&0xFF, bytearray 检查以确保值在 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))
于 2012-04-27T13:28:17.797 回答
0

您是否尝试在将二进制数据写入文件(或通过网络发送)之前对其进行序列化?

您是否可能打算使用该pickle模块进行数据序列化?

于 2012-04-27T14:34:49.380 回答