Solución:
Usar rstrip
>>> text = "Hellox00x00x00x00'
>>> text.rstrip('x00')
'Hello'
Quita todo x00
caracteres al final de la cadena.
>>> a="Hellox00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00"
>>> a.replace('x00','')
'Hello'
Creo que la solución más general es usar:
cleanstring = nullterminatedstring.split('x00',1)[0]
Que lo hará split
la cuerda usando x00
como el delimitador 1
tiempo. los split(...)
devuelve una lista de 2 elementos: todo lo que esté antes del nulo además de todo lo que esté después del nulo (elimina el delímetro). Anexando [0]
solo devuelve la parte de la cadena antes del primer carácter nulo ( x00), que creo que es lo que estás buscando.
La convención en algunos lenguajes, específicamente en C, es que un solo carácter nulo marca el final de la cadena. Por ejemplo, también debería esperar ver cadenas que se parecen a:
'Hellox00dpiecesofsomeoldstringx00x00x00'
La respuesta proporcionada aquí manejará esa situación así como los otros ejemplos.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)