Например, я получаю строку:
str = "please answer my question"
Я хочу записать это в файл.
Но мне нужно знать размер строки перед записью строки в файл. Какую функцию я могу использовать для вычисления размера строки?
Например, я получаю строку:
str = "please answer my question"
Я хочу записать это в файл.
Но мне нужно знать размер строки перед записью строки в файл. Какую функцию я могу использовать для вычисления размера строки?
Если вы говорите о длине строки, вы можете использовать len()
:
>>> s = 'please answer my question'
>>> len(s) # number of characters in s
25
Если вам нужен размер строки в байтах, вам нужно sys.getsizeof()
:
>>> import sys
>>> sys.getsizeof(s)
58
Кроме того, не называйте свою строковую переменную str
. Он затеняет встроенную функцию str()
.
sys.getsizeof
возвращает количество байтов, которое объект Python занимает в памяти. Это не будет полезно для записи в файл ни при каких обстоятельствах.
- person Duncan; 11.02.2011
len(s.encode('utf8'))
или любая другая кодировка, которая будет использоваться при записи в файл. Кроме того, если им также нужен завершающий нуль, им нужно будет добавить для этого 1.
- person Duncan; 31.07.2018
len()
должно быть достаточно. Символ — это один байт (в формате ascii). Если он будет закодирован не-ascii-символами, просто передайте кодировку, как предложил @Duncan.
- person sixty4bit; 23.11.2020
ответ 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.
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
Вы также можете использовать str.len() для подсчета длины элемента в столбце.
data['name of column'].str.len()
Наиболее Pythonic способ — использовать len()
. Имейте в виду, что символ '\' в управляющих последовательностях не учитывается и может быть опасен при неправильном использовании.
>>> 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
Вы хотите найти длину строки на языке Python? Если вы хотите найти длину слова, вы можете использовать функцию len.
string = input("Enter the string : ")
print("The string length is : ",len(string))
ВЫХОД : -
Введите строку: вирусный
Длина строки: 5