Por ejemplo, me sale una cadena:
str = "please answer my question"
Quiero escribirlo en un archivo.
Pero necesito saber el tamaño de la cadena antes de escribir la cadena en el archivo. ¿Qué función puedo usar para calcular el tamaño de la cadena?
python
string
string-length
Babykick
fuente
fuente
Respuestas:
Si está hablando de la longitud de la cadena, puede usar
len()
:Si necesita el tamaño de la cadena en bytes, necesita
sys.getsizeof()
:Además, no llame a su variable de cadena
str
. Sombra lastr()
función incorporada.fuente
sys.getsizeof
devuelve el número de bytes que el objeto Python ocupa en la memoria. Eso no será útil para escribir en un archivo en ninguna circunstancia.len(s.encode('utf8'))
o cualquier otra codificación que se utilizará al escribir en el archivo. Además, si también quieren una terminación nula, deberán agregar 1 para eso.Python 3:
La respuesta del usuario225312 es correcta:
A. Para contar el número de caracteres en el
str
objeto, puede usar lalen()
función:B. Para obtener el tamaño de la memoria en bytes asignados al
str
objeto de almacenamiento , puede usar lasys.getsizeof()
funciónPython 2:
Se complica para Python 2.
A. La
len()
función en Python 2 devuelve el recuento de bytes asignados para almacenar caracteres codificados en unstr
objeto.A veces será igual al recuento de caracteres:
Pero a veces, no lo hará:
Eso es porque
str
puede usar codificación de longitud variable internamente. Por lo tanto, para contar caracteresstr
, debe saber qué codificaciónstr
está utilizando su objeto. Luego puedes convertirlo enunicode
objeto y obtener el recuento de caracteres:B. La
sys.getsizeof()
función hace lo mismo que en Python 3: devuelve el recuento de bytes asignados para almacenar el objeto de cadena completofuente
fuente
También puede usar str.len () para contar la longitud del elemento en la columna
fuente
La forma más pitónica es usar el
len()
. Tenga en cuenta que el carácter '\' en las secuencias de escape no se cuenta y puede ser peligroso si no se usa correctamente.fuente