Как получить размер строки в Python?

Например, я получаю строку:

str = "please answer my question"

Я хочу записать его в файл.

Но перед записью строки в файл мне нужно знать размер строки. Какую функцию я могу использовать для вычисления размера строки?

Ответ 1

Если вы говорите о длине строки, вы можете использовать len():

>>> s = 'please answer my question'
>>> len(s)  # number of characters in s
25

Если вам нужен размер строки в байтах, вам нужно sys.getsizeof():

>>> import sys
>>> sys.getsizeof(s)
58

Также не вызывайте строковую переменную str. Затеняет встроенную функцию str().

Ответ 2

Python 3:

user225312 ответ правильный:

A. Для подсчета количества символов в объекте str вы можете использовать функцию len():

>>> print(len('please anwser my question'))
25

B. Чтобы получить объем памяти в байтах, выделенный для хранения объекта str, вы можете использовать функцию sys.getsizeof()

>>> from sys import getsizeof
>>> print(getsizeof('please anwser my question'))
50

Python 2:

Это становится сложным для Python 2.

A. Функция len() в Python 2 возвращает количество байтов, выделенных для хранения закодированных символов в объекте str.

Иногда это будет равно количеству символов:

>>> print(len('abc'))
3

Но иногда это не так:

>>> print(len('йцы'))  # String contains Cyrillic symbols
6

Это потому, что str может использовать кодировку переменной длины для внутреннего использования. Итак, для подсчета символов в str вы должны знать, какую кодировку использует ваш объект str. Затем вы можете преобразовать его в unicode объект и получить количество символов:

>>> print(len('йцы'.decode('utf8'))) #String contains Cyrillic symbols 
3

B. Функция sys.getsizeof() делает то же самое, что и в Python 3 - она возвращает количество байтов, выделенных для хранения целого строкового объекта

>>> print(getsizeof('йцы'))
27
>>> print(getsizeof('йцы'.decode('utf8')))
32

Ответ 3

>>> s = 'abcd'
>>> len(s)
4

Ответ 4

Вы также можете использовать str.len() для подсчета длины элемента в столбце

data['name of column'].str.len() 

Ответ 5

Самый Pythonic способ - использовать len(). Имейте в виду, что символ "\" в escape-последовательностях не учитывается и может быть опасным, если он не используется правильно.

>>> len('foo')
3
>>> len('\foo')
3
>>> len('\xoo')
  File "<stdin>", line 1
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 0-1: truncated \xXX escape