字符串有多少字节

时间:2010-10-25 09:20:36

标签: python

是否有一些函数会告诉我字符串在内存中占用多少字节?

我需要设置套接字缓冲区的大小,以便一次传输整个字符串。

2 个答案:

答案 0 :(得分:71)

如果它是Python 2.x str,请获取其len。如果它是Python 3.x str(或Python 2.x unicode),请先使用您的首选编码编码为bytes(或str)( 'utf-8'是一个不错的选择)然后获取编码的bytes / str对象的len


例如,ASCII字符每个使用1个字节:

>>> len("hello".encode("utf8"))
5

而中文每个使用3个字节:

>>> len("你好".encode("utf8"))
6

答案 1 :(得分:55)

import sys
sys.getsizeof(s)

# getsizeof(object, default) -> int
# Return the size of object in bytes.

但实际上你需要知道它的代表长度,所以像len(s)这样的东西就足够了。