Interkonvertierungen erfreuen sich wie immer großer Beliebtheit, aber die Konvertierung zwischen einer Zeichenfolge und Bytes ist heutzutage häufiger anzutreffen, da wir für die Verarbeitung von Dateien oder maschinelles Lernen (Pickle File) in großem Umfang eine Konvertierung der Zeichenfolgen in Bytes benötigen. Lassen Sie uns bestimmte Möglichkeiten besprechen, wie dies durchgeführt werden kann.
Methode Nr. 1: Verwendung von Bytes(str, enc) String kann mit der generischen Bytes-Funktion in Bytes konvertiert werden. Diese Funktion verweist intern auf die CPython-Bibliothek, die implizit die Kodierungsfunktion zum Konvertieren der Zeichenfolge in die angegebene Kodierung aufruft.
Python3
# Python code to demonstrate> # convert string to byte> # Using bytes(str, enc)> # initializing string> test_string>=> 'GFG>is> best'> # printing original string> print>('The original string : '>+> str>(test_string))> # Using bytes(str, enc)> # convert string to byte> res>=> bytes(test_string,>'utf-8'>)> # print result> print>('The byte converted string>is> : '>+> str>(res)>+> ',>type> : '>+> str>(>type>(res)))> |
>
>Ausgabe :
The original string : GFG is best The byte converted string is : b'GFG is best', type :>
Methode Nr. 2: Verwenden von encode(enc) Die am meisten empfohlene Methode zum Ausführen dieser speziellen Aufgabe ist die Verwendung der Encode-Funktion, um die Konvertierung durchzuführen. Da dadurch eine zusätzliche Verknüpfung mit einer bestimmten Bibliothek reduziert wird, ruft diese Funktion sie direkt auf.
Python3
Java-equals-Methode
# Python code to demonstrate> # convert string to byte> # Using encode(enc)> # initializing string> test_string>=> 'GFG>is> best'> # printing original string> print>('The original string : '>+> str>(test_string))> # Using encode(enc)> # convert string to byte> res>=> test_string.encode(>'utf-8'>)> # print result> print>('The byte converted string>is> : '>+> str>(res)>+> ',>type> : '>+> str>(>type>(res)))> |
>
>Ausgabe :
The original string : GFG is best The byte converted string is : b'GFG is best', type :>
Methode #2: Memoryview() verwenden
In diesem Beispiel rufen wir die Methode encode() für die Variable my_string auf, um sie mithilfe der UTF-8-Codierung in Bytes umzuwandeln. Dann übergeben wir das resultierende Byte-Objekt an die Funktion „memoryview()“, die ein Speicheransichtsobjekt zurückgibt, das eine Ansicht der zugrunde liegenden Bytes bereitstellt.
Schließlich rufen wir die Methode tobytes() für das Speicheransichtsobjekt auf, um ein neues Bytes-Objekt zu erstellen, das dieselben Daten enthält. Dieses Byteobjekt wird in der Variablen my_bytes gespeichert und an die Konsole ausgegeben.
HINWEIS: Die Funktion „memoryview()“ ist in Situationen nützlich, in denen Sie auf die zugrunde liegenden Bytes eines Objekts zugreifen müssen, ohne diese zu kopieren. Allerdings ist dies möglicherweise nicht der effizienteste Ansatz für die einfache Konvertierung von Zeichenfolgen in Bytes, da er zusätzlichen Overhead mit sich bringt.
Python3
my_string>=> 'Hello, world!'> #Define a string called my_string with the value 'Hello, world!'.> my_bytes>=> memoryview(my_string.encode(>'utf-8'>)).tobytes()> #Encode the string as bytes using the UTF-8 encoding by calling the encode() method on my_string and passing 'utf-8' as the argument. This will return a bytes object containing the encoded bytes.> #Convert the memoryview object of the bytes object to bytes using the tobytes() method. This creates a new bytes object that is a copy of the original bytes object.> #Print the resulting bytes object using the print() function.#> print>(my_bytes)> |
>
>Ausgabe
b'Hello, world!'>
Zeitkomplexität: O(n),
Raumkomplexität: O(n)
Methode Nr. 3: Verwendung der Methode binascii.unhexlify():
Algorithmus:
1.Importieren Sie das Binascii-Modul
2. Initialisieren Sie eine Zeichenfolge, die die hexadezimale Darstellung von Bytes enthält
3.Verwenden Sie die unhexlify()-Methode des binascii-Moduls, um die hexadezimale Zeichenfolge in Bytes umzuwandeln
4.Drucken Sie die konvertierten Bytes und ihren Typ aus.
xd Bedeutung
Python3
import> binascii> # initializing string> test_string>=> '4766472069732062657374'> # printing original string> print>(>'The original string : '> +> str>(test_string))> # Using binascii.unhexlify()> # convert string to byte> res>=> binascii.unhexlify(test_string)> # print result> print>(>'The byte converted string is : '> +> str>(res)>+> ', type : '> +> str>(>type>(res)))> #This code is contributed by Jyothi pinjala> |
>
>Ausgabe
The original string : 4766472069732062657374 The byte converted string is : b'GfG is best', type :>
Zeitkomplexität:
Die Methode binascii.unhexlify() hat eine Zeitkomplexität von O(n), wobei n die Länge der Eingabezeichenfolge ist.
Alle anderen Operationen in diesem Code haben eine Zeitkomplexität von O(1).
Daher beträgt die Gesamtzeitkomplexität dieses Codes O(n).
Raumkomplexität:
Die Speicherplatzkomplexität dieses Codes beträgt O(1), da er unabhängig von der Eingabegröße nur eine konstante Menge an zusätzlichem Speicherplatz verwendet.
Methode 5: Verwenden der Methode struct.pack().
Schritt-für-Schritt-Ansatz
Importieren Sie das Strukturmodul in Ihren Code.
Initialisieren Sie am besten eine Zeichenfolge mit dem Namen „test_string“ mit dem Wert GFG.
Drucken Sie die Originalzeichenfolge mit der print-Anweisung aus.
Verwenden Sie die Methode bytes(), um die Zeichenfolge in Bytes umzuwandeln. Übergeben Sie die Kodierung „test_string“ und „utf-8“ als Parameter an die Methode.
Verwenden Sie die Methode struct.pack(), um die Bytes in Binärdaten umzuwandeln. Übergeben Sie den Formatstring „10er“ und die Bytes als Parameter an die Methode. Die Formatzeichenfolge „10er“ gibt an, dass die Eingabedaten als Zeichenfolge der Länge 10 behandelt werden sollen.
Speichern Sie das Ergebnis in einer Variablen „res“.
Drucken Sie die konvertierte Bytezeichenfolge zusammen mit ihrem Typ mithilfe der print-Anweisung aus.
eckiges Material
Python3
import> struct> # initializing string> test_string>=> 'GFG is best'> # printing original string> print>(>'The original string : '> +> str>(test_string))> # Using struct.pack()> # convert string to byte> res>=> struct.pack(>'10s'>, bytes(test_string,>'utf-8'>))> # print result> print>(>'The byte converted string is : '> +> str>(res)>+> ', type : '> +> str>(>type>(res)))> |
>
>Ausgabe
The original string : GFG is best The byte converted string is : b'GFG is bes', type :>
Zeitkomplexität: Die Zeitkomplexität der Methoden bytes() und struct.pack() beträgt O(n), wobei n die Länge der Eingabezeichenfolge ist.
Hilfsraum: Die Raumkomplexität der Methoden bytes() und struct.pack() beträgt O(n), wobei n die Länge der Eingabezeichenfolge ist.