获取二进制数据的字节大小(python3.6)

时间:2018-05-31 22:39:46

标签: python character-encoding byte bytestring

我有一个字符串,我使用obj2转换为二进制表示。 之后我希望str.encode('utf-8')getsizeof()返回相同的值,但似乎len()总是返回更大的值。

然后我通过套接字将这个二进制数据发送到node.js服务器并将它们存储在Buffer中。 sys.getsizeof()Buffer.length都返回相同的值,在Python中等于Buffer.byteLength值。

我无法弄清楚那里发生了什么以及为什么len()Buffer.byteLength不一样。

我的数据并不总是字符串或可能有不同的编码,所以我想确保我知道字节大小,而不是字符。

1 个答案:

答案 0 :(得分:3)

sys.getsizeof返回对象占用内存的大小。这包括Python为了处理对象而需要的所有其他数据(例如,首先是字符串而不是整数的信息)。

例如,看到它对于空字符串有一定的大小:

>>> sys.getsizeof('')
49

甚至是None

>>> sys.getsizeof(None)
16