Например, я получаю строку:
str = "please answer my question"
Я хочу записать это в файл.
Но мне нужно знать размер строки перед записью строки в файл. Какую функцию я могу использовать для расчета размера строки?
python
string
string-length
babykick
источник
источник
Ответы:
Если вы говорите о длине строки, вы можете использовать
len()
:Если вам нужен размер строки в байтах, вам нужно
sys.getsizeof()
:Кроме того, не вызывайте строковую переменную
str
. Затеняет встроеннуюstr()
функцию.источник
sys.getsizeof
возвращает количество байтов, которые объект Python занимает в памяти. Это не будет полезно для записи в файл при любых обстоятельствах.len(s.encode('utf8'))
или иное кодирование, которое будет использоваться при записи в файл. Кроме того, если они также хотят завершающий ноль, им нужно будет добавить 1 для этого.Python 3:
Ответ user225312 правильный:
A. Для подсчета количества символов в
str
объекте вы можете использоватьlen()
функцию:B. Чтобы получить объем памяти в байтах, выделенный для
str
объекта хранения , вы можете использоватьsys.getsizeof()
функциюPython 2:
Это становится сложным для Python 2.
А.
len()
функция в Python 2 возвращает кол - во байтах , выделенных для хранения закодированных символов вstr
объекте.Иногда это будет равно количеству символов:
Но иногда это не будет:
Это потому, что
str
можно использовать внутреннюю кодировку переменной длины . Таким образом, для подсчета символовstr
вы должны знать, какую кодировку использует вашstr
объект. Затем вы можете преобразовать его вunicode
объект и получить количество символов:B.
sys.getsizeof()
функция делает то же самое , как и в Python 3 - возвращает количество байт , выделенных для хранения всего объекта строкиисточник
источник
Вы также можете использовать str.len () для подсчета длины элемента в столбце.
источник
Самый Pythonic способ заключается в использовании
len()
. Имейте в виду, что символ «\» в escape-последовательностях не учитывается и может быть опасным, если не используется правильно.источник