logo

Python | Pārvērst virkni baitos

Starppārveidojumi, kā parasti, ir diezgan populāri, taču mūsdienās pārveidošana starp virkni baitiem ir biežāka, jo, lai apstrādātu failus vai mašīnmācīšanos ( Pickle File ), mēs plaši pieprasām, lai virknes tiktu konvertētas baitos. Apspriedīsim dažus veidus, kā to var veikt.

1. metode: baitu (str, enc) izmantošana Virkni var pārvērst baitos, izmantojot vispārējo baitu funkciju. Šī funkcija iekšēji norāda uz CPython bibliotēku, kas netieši izsauc kodēšanas funkciju, lai pārveidotu virkni noteiktā kodējumā.



izrakstīšanās ar git

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



>

>

Izvade:

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

2. metode: kodēšanas (enc) izmantošana Ieteicamākā metode šī konkrētā uzdevuma veikšanai, izmantojot kodēšanas funkciju, lai veiktu konvertēšanu, jo tā samazina vienu papildu saiti uz noteiktu bibliotēku, šī funkcija to tieši izsauc.

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

lateksa daļējs atvasinājums
>

>

Izvade:

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

2. metode: atmiņas skata () izmantošana

Šajā piemērā mēs izsaucam encode() metodi mainīgajam my_string, lai pārveidotu to baitos, izmantojot UTF-8 kodējumu. Pēc tam mēs nododam iegūto baitu objektu funkcijai memoryview(), kas atgriež atmiņas skata objektu, kas nodrošina pamatā esošo baitu skatu.

Visbeidzot, mēs izsaucam tobytes() metodi atmiņas skata objektā, lai izveidotu jaunu baitu objektu, kurā ir tie paši dati. Šis baitu objekts tiek saglabāts mainīgajā my_bytes un izdrukāts konsolē.

PIEZĪME: funkcija memoryview() ir noderīga situācijās, kad ir nepieciešams piekļūt objekta pamatā esošajiem baitiem, tos nekopējot. Tomēr tā var nebūt visefektīvākā metode vienkāršai virknes konvertēšanai baitos, jo tā ir saistīta ar papildu pieskaitāmajām izmaksām.

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

>

>

knn
Izvade

b'Hello, world!'>

laika sarežģītība: O(n),

telpas sarežģītība: O(n)

3. metode: binascii.unhexlify() metodes izmantošana:

Algoritms:

1. Importējiet Binascii moduli
2. Inicializējiet virkni, kas satur baitu heksadecimālo attēlojumu
3. Izmantojiet binascii moduļa metodi unhexlify(), lai pārveidotu heksadecimālo virkni baitos.
4.Izdrukājiet konvertētos baitus un to veidus.

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>

>

kanēlis vs mate
>

Izvade

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

Laika sarežģītība:

Metodes binascii.unhexlify() laika sarežģītība ir O(n), kur n ir ievades virknes garums.
Visām pārējām operācijām šajā kodā ir laika sarežģītība O(1).
Tāpēc šī koda kopējā laika sarežģītība ir O(n).

Kosmosa sarežģītība:

Šī koda telpas sarežģītība ir O(1), jo tas izmanto tikai nemainīgu papildu vietas daudzumu neatkarīgi no ievades lieluma.

5. metode: izmantojot struct.pack() metodi.

Soli pa solim pieeja

Importējiet struct moduli savā kodā.
Inicializējiet virkni ar nosaukumu “test_string” ar vērtību GFG ir labākais.
Drukājiet oriģinālo virkni, izmantojot drukas paziņojumu.
Izmantojiet metodi baiti (), lai pārvērstu virkni baitos. Nododiet 'test_string' un 'utf-8' kodējumu kā metodes parametrus.
Izmantojiet metodi struct.pack(), lai baitus pārvērstu bināros datos. Nododiet formāta virkni “10s” un baitus kā parametrus metodei. 10. gadu formāta virkne norāda, ka ievades dati ir jāuzskata par virkni, kuras garums ir 10.
Saglabājiet rezultātu mainīgajā “res”.
Izdrukājiet konvertēto baitu virkni kopā ar tās veidu, izmantojot drukas paziņojumu.

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

powershell daudzrindu komentārs
>

>

Izvade

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

Laika sarežģītība: baitu() un struct.pack() metožu laika sarežģītība ir O(n), kur n ir ievades virknes garums.

Papildtelpa: baitu() un struct.pack() metožu telpas sarežģītība ir O(n), kur n ir ievades virknes garums.