Chr () äquivalent, das ein Bytes-Objekt zurückgibt, in py3k

Python 2.x hat chr() , der eine Zahl im Bereich 0-255 in einen Byte-String mit einem Zeichen mit dem numerischen Wert umwandelt und unichr() , der eine Zahl im Bereich 0-0x10FFFF in einen Unicode-String umwandelt Mit einem Zeichen mit dem Unicode-Codepoint. Python 3.x ersetzt unichr() mit chr() , im Einklang mit seiner "Unicode-Strings sind Standard" -Politik, aber ich kann nichts finden, was genau das tut, was der alte chr() hat. Das 2to3 Dienstprogramm (ab 2.6) lässt chr Anrufe allein, was im Allgemeinen nicht richtig ist 🙁

(Dies dient zum Analysieren und Serialisieren eines Dateiformats, das explizit in 8-Bit-Bytes definiert ist.)

  • Wie man das Array numpy normalisiert?
  • Hashtable / Wörterbuch / Kartensuche mit regulären Ausdrücken
  • Parallele Dateivergleichung, Python
  • Warum sind komplexe Zahlen in Python mit 'j' anstelle von 'i' bezeichnet?
  • Python: "fügen" mehrere (unbekannte) csvs zusammen
  • Escape String Python für MySQL
  • Was ist die Perl-Version eines Python-Iterators?
  • Erstellen einer sklearn.linear_model.LogisticRegression-Instanz aus vorhandenen Koeffizienten
  • Installieren Sie das Python-Paket: "Paket fehlt in aktuellen Win-64-Kanälen"
  • Mit azurblau als Speicher-Backend für Django (mit Django-Stores)
  • Konjugierte Transponierer ".H" in numpy
  • Wie definiere ich eine Funktion, die überprüfen würde, ob ein String Whitespaces hat, nachdem der Satz beendet ist?
  • 4 Solutions collect form web for “Chr () äquivalent, das ein Bytes-Objekt zurückgibt, in py3k”

    Betrachten Sie die Verwendung von Bytearray ((255,)), die das gleiche in Python2 und Python3 funktioniert. In beiden Python-Generationen kann das resultierende Bytearray-Objekt in ein Bytes (obj) umgewandelt werden, das ein Alias ​​für ein Str () in Python2 und Real Bytes () in Python3 ist.

     # Python2 >>> x = bytearray((32,33)) >>> x bytearray(b' !') >>> bytes(x) ' !' # Python3 >>> x = bytearray((32,33)) >>> x bytearray(b' !') >>> bytes(x) b' !' 

    Versuchen Sie Folgendes:

     b = bytes([x]) 

    Beispielsweise:

     >>> bytes([255]) b'\xff' 
     >>> import struct >>> struct.pack('B', 10) b'\n' >>> import functools >>> bchr = functools.partial(struct.pack, 'B') >>> bchr(10) b'\n' 

    Falls Sie den Python 2/3 kompatiblen Code schreiben möchten, verwenden Sie six.int2byte

    Python ist die beste Programmiersprache der Welt.