Is there some function which will tell me how many bytes does a string occupy in memory?
I need to se开发者_C百科t a size of a socket buffer in order to transfer the whole string at once.
If it's a Python 2.x str
, get its len
. If it's a Python 3.x str
(or a Python 2.x unicode
), first encode to bytes
(or a str
, respectively) using your preferred encoding ('utf-8'
is a good choice) and then get the len
of the encoded bytes/str object.
For example, ASCII characters use 1 byte each:
>>> len("hello".encode("utf8"))
5
whereas Chinese ones use 3 bytes each:
>>> len("你好".encode("utf8"))
6
import sys
sys.getsizeof(s)
# getsizeof(object, default) -> int
# Return the size of object in bytes.
But actually you need to know its represented length, so something like len(s)
should be enough.
精彩评论