2016-08-10 2 views
3

Wie Sie diese "\ x00 \ x00" in einer Zeichenfolge entfernen? Ich habe viele dieser Zeichenfolgen (Beispiel unten gezeigt). Ich kann re verwenden, um diese "\ x00" zu ersetzen. Aber ich frage mich, ob es einen besseren Weg gibt, das zu tun? Die Konvertierung zwischen Unicode, Bytes und String ist immer verwirrend.So entfernen Sie diese " x00 x00"

'Hello\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'.

+2

Abgesehen davon, dass Sie das \ x00 aus Ihrer Zeichenfolge entfernen, sollten Sie sich überlegen, warum Sie sie überhaupt haben. Vielleicht könnte der Code, der die Zeichenfolgen erstellt, damit umgehen? – Neil

+1

Der Code, den Sie geschrieben haben, der diese Zeichenfolge erzeugt, ist wahrscheinlich falsch. – user2357112

+0

@Neil, Es ist, weil ich ein C-Wrapper bin, wo ich maximal mögliche Länge für die Zeichenfolge bereitgestellt werden sollte. Bei kurzen Strings werden "\ x00" am Ende angehängt. –

Antwort

8

Verwenden rstrip

>>> text = 'Hello\x00\x00\x00\x00' 
>>> text.rstrip('\x00') 
'Hello' 

Es entfernt alle \x00 Zeichen am Ende der Zeichenfolge.

9
>>> a = 'Hello\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' 
>>> a.replace('\x00','') 
'Hello' 
Verwandte Themen