Por exemplo, recebo uma string:
str = "please answer my question"
Eu quero gravá-lo em um arquivo.
Mas preciso saber o tamanho da string antes de gravá-la no arquivo. Que função posso usar para calcular o tamanho da string?
python
string
string-length
babykick
fonte
fonte
Respostas:
Se você está falando sobre o comprimento da string, pode usar
len()
:Se você precisar do tamanho da string em bytes, precisará de
sys.getsizeof()
:Além disso, não chame sua variável string
str
. Sombreia astr()
função interna.fonte
sys.getsizeof
retorna o número de bytes que o objeto Python ocupa na memória. Isso não será útil para gravar em um arquivo em nenhuma circunstância.len(s.encode('utf8'))
ou qualquer outra codificação que será usada ao gravar no arquivo. Além disso, se eles também quiserem um nulo final, precisarão adicionar 1 para isso.Python 3:
A resposta do usuário225312 está correta:
A. Para contar o número de caracteres no
str
objeto, você pode usar alen()
função:B. Para obter o tamanho da memória em bytes alocados ao
str
objeto de armazenamento , você pode usar asys.getsizeof()
funçãoPython 2:
Fica complicado para o Python 2.
A. A
len()
função no Python 2 retorna a contagem de bytes alocados para armazenar caracteres codificados em umstr
objeto.Às vezes, será igual à contagem de caracteres:
Mas, às vezes, isso não acontece:
Isso porque
str
pode usar codificação de comprimento variável internamente. Portanto, para contar caracteres,str
você deve saber qual codificação seustr
objeto está usando. Então você pode convertê-lo emunicode
objeto e obter a contagem de caracteres:B. A
sys.getsizeof()
função faz a mesma coisa que no Python 3 - retorna a contagem de bytes alocados para armazenar todo o objeto da stringfonte
fonte
Você também pode usar str.len () para contar o comprimento do elemento na coluna
fonte
A maneira mais pitônica é usar o
len()
. Lembre-se de que o caractere '\' nas seqüências de escape não é contado e pode ser perigoso se não for usado corretamente.fonte