Есть ли какая-то функция, которая скажет мне, сколько байтов занимает строка в памяти?
Мне нужно установить размер буфера сокета, чтобы сразу передать всю строку.
Ответ 1
import sys
sys.getsizeof(s)
# getsizeof(object, default) -> int
# Return the size of object in bytes.
Но на самом деле вам нужно знать его представленную длину, поэтому что-то вроде len(s) должно быть достаточно.
Ответ 2
Если это Python 2.x str, получите его len. Если это Python 3.x str (или Python 2.x unicode), сначала кодируйте на bytes (или a str, соответственно), используя предпочтительную кодировку ('utf-8' - хороший выбор) а затем получить len закодированного объекта bytes/str.
Например, символы ASCII используют по 1 байт каждый: