logo

Python | Konvertera sträng till byte

Interkonverteringar är som vanligt ganska populära, men konvertering mellan en sträng till byte är vanligare nuförtiden på grund av att vi för hantering av filer eller maskininlärning ( Pickle File ), kräver att strängarna konverteras till byte. Låt oss diskutera vissa sätt på vilka detta kan utföras.

Metod #1: Använda bytes(str, enc) Sträng kan konverteras till byte med den generiska bytesfunktionen. Denna funktion pekar internt på CPython Library som implicit anropar kodningsfunktionen för att konvertera strängen till specificerad kodning.



Python3

nätverk och internet






# 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)))>



>

>

Utgång:

The original string : GFG is best The byte converted string is : b'GFG is best', type :>

Metod #2: Använd encode(enc) Den mest rekommenderade metoden för att utföra just denna uppgift, med hjälp av kodningsfunktionen för att få konverteringen gjord, eftersom det minskar en extra länk till ett visst bibliotek, den här funktionen anropar den direkt.

Python3




# 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)))>

>

>

Utgång:

The original string : GFG is best The byte converted string is : b'GFG is best', type :>

Metod #2: Använda memoryview()

I det här exemplet anropar vi metoden encode() på variabeln my_string för att konvertera den till byte med UTF-8-kodningen. Sedan skickar vi det resulterande bytesobjektet till memoryview()-funktionen, som returnerar ett minnesvyobjekt som ger en vy av de underliggande byten.

Slutligen anropar vi metoden tobytes() på minnesvyobjektet för att skapa ett nytt bytesobjekt som innehåller samma data. Detta bytesobjekt lagras i variabeln my_bytes och skrivs ut till konsolen.

OBS: memoryview()-funktionen är användbar för situationer där du behöver komma åt de underliggande byten för ett objekt utan att kopiera dem. Men det kanske inte är det mest effektiva tillvägagångssättet för enkel sträng-till-byte-konvertering, eftersom det innebär ytterligare overhead.

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)>

>

arraylist java sortering

>

Produktion

b'Hello, world!'>

tidskomplexitet: O(n),

rymdkomplexitet: O(n)

Metod #3: Använda binascii.unhexlify()-metoden:

Algoritm:

gör medan loop i java

1.Importera binascii-modulen
2. Initiera en sträng som innehåller den hexadecimala representationen av bytes
3.Använd unhexlify()-metoden för binascii-modulen för att konvertera den hexadecimala strängen till byte
4.Skriv ut de konverterade byten och deras typ.

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>

>

>

Produktion

The original string : 4766472069732062657374 The byte converted string is : b'GfG is best', type :>

Tidskomplexitet:

Metoden binascii.unhexlify() har en tidskomplexitet på O(n), där n är längden på inmatningssträngen.
Alla andra operationer i denna kod har en tidskomplexitet på O(1).
Därför är den totala tidskomplexiteten för denna kod O(n).

Utrymmes komplexitet:

Utrymmeskomplexiteten för denna kod är O(1), eftersom den bara använder en konstant mängd extra utrymme, oavsett indatastorlek.

Metod 5 : använder metoden struct.pack().

Steg-för-steg tillvägagångssätt

Importera struct-modulen i din kod.
Initiera en sträng som heter 'test_string' med värdet GFG är bäst.
Skriv ut originalsträngen med hjälp av print-satsen.
Använd metoden bytes() för att konvertera strängen till bytes. Skicka 'test_string' och 'utf-8'-kodningen som parametrar till metoden.
Använd metoden struct.pack() för att konvertera byte till binär data. Skicka formatsträngen '10s' och byte som parametrar till metoden. Formatsträngen '10s' indikerar att indata ska behandlas som en sträng med längden 10.
Lagra resultatet i en variabel 'res'.
Skriv ut den konverterade bytesträngen tillsammans med dess typ med hjälp av print-satsen.

Python3


vad är maven



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)))>

>

>

Produktion

The original string : GFG is best The byte converted string is : b'GFG is bes', type :>

Tidskomplexitet: Tidskomplexiteten för metoderna bytes() och struct.pack() är O(n) där n är längden på inmatningssträngen.

Auxiliary Space: Utrymmeskomplexiteten för metoderna bytes() och struct.pack() är O(n) där n är längden på inmatningssträngen.