logo

Python | Konverter streng til byte

Interkonverteringer er som vanlig ganske populære, men konvertering mellom en streng til bytes er mer vanlig i disse dager på grunn av det faktum at for håndtering av filer eller Machine Learning ( Pickle File ), krever vi i stor grad at strengene skal konverteres til bytes. La oss diskutere visse måter dette kan utføres på.

Metode #1: Bruke bytes(str, enc) String kan konverteres til byte ved å bruke den generiske byte-funksjonen. Denne funksjonen peker internt til CPython Library som implisitt kaller kodefunksjonen for å konvertere strengen til spesifisert koding.



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



>

>

Utgang:

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

Metode #2: Bruke encode(enc) Den mest anbefalte metoden for å utføre denne spesielle oppgaven, ved å bruke kodefunksjonen for å få konverteringen utført, siden den reduserer én ekstra kobling til et bestemt bibliotek, kaller denne funksjonen den direkte.

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

>

>

Utgang:

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

Metode #2: Bruk av memoryview()

I dette eksemplet kaller vi encode()-metoden på my_string-variabelen for å konvertere den til byte ved å bruke UTF-8-kodingen. Deretter sender vi det resulterende byteobjektet til memoryview()-funksjonen, som returnerer et minnevisningsobjekt som gir en visning av de underliggende bytene.

Til slutt kaller vi tobytes()-metoden på minnevisningsobjektet for å lage et nytt byteobjekt som inneholder de samme dataene. Dette bytes-objektet lagres i my_bytes-variabelen og skrives ut til konsollen.

MERK: funksjonen memoryview() er nyttig for situasjoner der du trenger å få tilgang til de underliggende bytene til et objekt uten å kopiere dem. Imidlertid er det kanskje ikke den mest effektive tilnærmingen for enkel streng-til-byte-konvertering, da det innebærer ekstra overhead.

Python3

forskjellen mellom array og arraylist




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

>

>

Produksjon

b'Hello, world!'>

tidskompleksitet: O(n),

plasskompleksitet: O(n)

Metode #3: Bruk av binascii.unhexlify() metode:

Algoritme:

1.Importer binascii-modulen
2. Initialiser en streng som inneholder den heksadesimale representasjonen av bytes
3.Bruk unhexlify()-metoden til binascii-modulen for å konvertere den heksadesimale strengen til byte
4.Skriv ut de konverterte bytene og deres type.

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>

>

>

Produksjon

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

Tidskompleksitet:

Binascii.unhexlify()-metoden har en tidskompleksitet på O(n), der n er lengden på inndatastrengen.
Alle andre operasjoner i denne koden har en tidskompleksitet på O(1).
Derfor er den totale tidskompleksiteten til denne koden O(n).

Plass kompleksitet:

Plasskompleksiteten til denne koden er O(1), siden den bare bruker en konstant mengde ekstra plass, uavhengig av inngangsstørrelsen.

Metode 5: ved å bruke struct.pack()-metoden.

Trinn-for-trinn tilnærming

Importer struct-modulen i koden din.
Initialiser en streng kalt 'test_string' med verdien GFG er best.
Skriv ut den originale strengen ved å bruke print-setningen.
Bruk bytes()-metoden for å konvertere strengen til bytes. Send 'test_string' og 'utf-8'-kodingen som parametere til metoden.
Bruk struct.pack()-metoden for å konvertere bytene til binære data. Send formatstrengen '10s' og bytene som parametere til metoden. '10s'-formatstrengen indikerer at inndataene skal behandles som en streng med lengde 10.
Lagre resultatet i en variabel 'res'.
Skriv ut den konverterte bytestrengen sammen med dens type ved å bruke print-setningen.

Python3




q2 måneder
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)))>

>

>

Produksjon

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

Tidskompleksitet: Tidskompleksiteten til metodene bytes() og struct.pack() er O(n) der n er lengden på inndatastrengen.

Auxiliary Space: Mellomromskompleksiteten til metodene bytes() og struct.pack() er O(n) der n er lengden på inndatastrengen.