是否有一些函数会告诉我字符串在内存中占用多少字节?
我需要设置套接字缓冲区的大小,以便一次传输整个字符串。
答案 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)
这样的东西就足够了。