So entfernen Sie diese mit "\x00\x00"
So entfernen Sie diese mit "\x00\x00" in einem string ?
Ich habe viele strings (Beispiel siehe unten). Ich kann über die re.sub solche zu ersetzen, die "\x00". Aber ich Frage mich, ob es einen besseren Weg gibt, das zu tun ? Konvertierung zwischen unicode, Byte und string ist immer verwirrend.
'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'.
Abgesehen vom entfernen der \x00 aus Ihrem string, möchten Sie vielleicht setzen einige Gedanken in, warum haben Sie Sie in den ersten Platz. Vielleicht ist der code, baut die strings könnten mit Ihnen umgehen?
Der code, den Sie schrieb, produziert dieser string ist wahrscheinlich falsch.
Es ist, weil ich bin ein C-wrapper, wo sollte ich, sofern maximal mögliche Länge für die Zeichenfolge. Für diejenigen Streicher, die kurzen, "\x00"s werden hinten angehängt.
in der C-wrapper, berücksichtigen, einschließlich der tatsächlichen Länge der Daten bei der Konvertierung des char-Arrays in ein Python-Objekt.
Der code, den Sie schrieb, produziert dieser string ist wahrscheinlich falsch.
Es ist, weil ich bin ein C-wrapper, wo sollte ich, sofern maximal mögliche Länge für die Zeichenfolge. Für diejenigen Streicher, die kurzen, "\x00"s werden hinten angehängt.
in der C-wrapper, berücksichtigen, einschließlich der tatsächlichen Länge der Daten bei der Konvertierung des char-Arrays in ein Python-Objekt.
strlen
auf einem array schneller als eine Python-str.rstrip oder str.ersetzen, und machen die Python-Schnittstelle intuitiver. Vielleicht docs.python.org/3.5/c-api/bytes.html und PyBytes_FromStringAndSize()
helfen würde.InformationsquelleAutor Luffy Cyliu | 2016-08-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
rstrip
Es entfernt alle
\x00
Zeichen am Ende der Zeichenfolge.InformationsquelleAutor warownia1
InformationsquelleAutor galaxyan
Ich denke, je mehr die Allgemeine Lösung ist zu verwenden:
Die
split
den string mit\x00
als delimeter1
Zeit. Diesplit(...)
gibt eine 2-element-Liste: alles, was vor der null zusätzlich zu alles, was nach der null (es entfernt die delimeter). Anhängen[0]
gibt nur den Teil des Strings vor dem ersten null (\x00) - Zeichen, die ich glaube, ist, was Sie suchen.Des übereinkommens in einigen Sprachen, insbesondere C-mag, ist, dass eine einzige null-Zeichen markiert das Ende der Zeichenfolge. Zum Beispiel, sollten Sie außerdem erwarten, finden Sie unter Zeichenfolgen, die wie folgt Aussehen:
Die Antwort geliefert, hier wird diese situation meistern, wie auch die anderen Beispiele.
InformationsquelleAutor anregen