StringIO-Ersatz, der funktioniert mit bytes statt strings?
Gibt es irgendeinen Ersatz für python - StringIO
- Klasse ein, die Arbeit mit bytes
statt des strings?
Kann es nicht offensichtlich sein, aber wenn Sie verwendet StringIO für die Verarbeitung von binären Daten sind Sie kein Glück mit Python 2.7 oder höher.
- Es ist nicht klar, was dein problem ist. Belegen Sie bitte Ihre angebliche problem, indem Sie zeigt code, der funktioniert in 2.6, aber nicht in 2.7. Oder siehe meine Antwort.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen
io.BytesIO
.Als andere haben wies darauf hin, Sie können in der Tat verwenden
StringIO
2.7, aberBytesIO
ist eine gute Wahl für vorwärts-Kompatibilität.In Python 2.6/2.7, die io Modul verwendet werden soll für Kompatibilität mit Python 3.X. Aus den docs:
In Python-Versionen, die älter als 3 ist.X die StringIO Modul enthält die legacy-version von StringIO, die im Gegensatz zu
io.StringIO
können verwendet werden pre-2.6-Versionen von Python:Sagen Sie: "kann Es nicht offensichtlich sein, aber wenn Sie verwendet StringIO für die Verarbeitung von binären Daten sind Sie kein Glück mit Python 2.7 oder neuer".
Ist es nicht offensichtlich, weil es nicht wahr.
Wenn Sie code haben, der funktioniert auf 2.6 oder früher, es weiter zu arbeiten auf einem 2,7. Unbearbeitete screen dump (Windows-Eingabeaufforderung Verpackung auf dem col 80 und alle):
Wenn Sie brauchen, um code zu schreiben, läuft auf 2,7 und 3.x verwenden Sie die
BytesIO
Klasse in derio
Modul., Wenn Sie brauchen/wollen eine einzige Codebasis, unterstützt 2.7, 2.6, ... und 3.x, müssen Sie ein bisschen härter arbeiten. Mit der sechs Modul sollte helfen, eine Menge.