Bajty do sznurka w Pythonie

Bajty do sznurka w Pythonie

W Python, za każdym razem, gdy coś będzie przechowywać, będzie przechowywać go jako bajt. Bajty nie są czytelne człowieka, a sznurki są postaciami, które można czytać. Za każdym razem, gdy przechowujemy dowolny ciąg, nie będzie on bezpośrednio przechowywać go jako ciąg; zostanie zakodowany w bajtach przy użyciu różnych metod, takich jak ASCII i UTF-8.

Na przykład, „Jestem Linuxhint”.Encode („ASCII”)

W powyższym przykładzie konwertujemy ciąg na bajty za pomocą metody Encode ASCII. A kiedy wydrukujemy go za pomocą metody drukowania Pythona, zobaczymy wyniki takie jak B'I Am A Linuxhint '. Tutaj widzimy, że ciąg podąża za jedną postacią, b. W rzeczywistości nie jesteśmy w stanie odczytać bajtów, ale tutaj funkcja drukowania Pythona dekoduje bajty do formularzy czytelnych ludzi, abyśmy mogli odczytać struny.

Ale w rzeczywistości, kiedy uruchamiamy ten ciąg, aby zobaczyć każdą postać Strings Bajtes, wydrukuje on tak:

str1 = „Jestem Linuxhint”
print (typ (str1))
str2 = b'i Am a Linuxhint '
print (typ (str2))

Stworzyliśmy dwa struny. Jeden ciąg jest prosty. A drugim ciągiem są bajty. Kiedy drukujemy oba typy ciągów, otrzymujemy wyniki, jak pokazano poniżej. Poniższe wyniki pokazują, że jeden ciąg to typ bajtów, a jeden inny to typ ciągu.


Teraz wydrukujemy każdą postać obu strun, aby znaleźć różnicę między nimi. Najpierw wydrukujemy ciąg (STR1) za pomocą pętli dla normalnego ciągu.

dla A in STR1:
Drukuj (a)

Wyjście:

I
A
M
A
L
I
N
u
X
H
I
N
T

Teraz wydrukujemy inny ciąg (STR2), który jest typem bajtów.

dla A in Str2:
Drukuj (a)

Wyjście:

73
32
97
109
32
97
32
108
105
110
117
120
104
105
110
116

Z powyższych wyników możemy zobaczyć różnice między typem bajtów a typem ciągu. Typ bajtów nie jest formami czytelnymi przez człowieka.

Więc teraz zobaczymy różne metody, które mogą przekształcić bajty na struny.

Metoda 1: Za pomocą funkcji map ()

W tej metodzie użyjemy funkcji map () do konwersji bajtów na format ciągu. Poniższy mały program wyczyści koncepcję.

bajt = [97, 99, 100]
s = ".dołącz (mapa (chr, bajt))
wydruk (y)

Wyjście:

ACD

Linia 1: Utworzyliśmy listę bajtu imiona.

Linia 3: Następnie przekazaliśmy znaki elementu na liście jako parametr i bajt jako parametr do funkcji łączenia (), która dołączy do wszystkich znaków po konwersji. Wreszcie wynik jest drukowany.

Metoda 2: Za pomocą funkcji decode ()

Inną metodą jest funkcja decode (). Funkcja dekodowania działa przeciwna do funkcji encode ().

#Konwerguj bajty do ciągu za pomocą Decode ()
str = b'blogs Linuxhint '
Drukuj (STR)
print (typ (str))
# Teraz konwersja bajtów na ciąg
wyjście = str.rozszyfrować()
print ('\ noutput:')
Drukuj (wyjście)
print (typ (wyjście))

Wyjście:

b'blogs Linuxhint '

Wyjście:

Blogi Linuxhint

Linia 3: Utworzyliśmy ciąg bajtowy.

Linia 4 do 5: Te wiersze po prostu wydrukują informacje o ciągu, który utworzyliśmy w wierszu 3.

Linia 8: Teraz wywoływamy funkcję dekodowania i zapisujemy wynik do nowej nazwy zmiennej.

Linia 11 do 12: Te linie pokazują, że teraz nasz ciąg nie ma już typu bajtów i że możemy potwierdzić typ wyjścia, który jest typem ciągu.

Metoda 3: Korzystanie z kodeków.funkcja dekodowania ()

W tej metodzie będziemy używać kodeków.funkcja dekodowania (). Ta funkcja służy do konwersji łańcucha binarnego na normalne formy. Zobaczmy więc, jak faktycznie działa ta funkcja.

#Konwerguj bajty do ciągów za pomocą Codecs ()
Importuj kodeki
str = b'blogs Linuxhint '
Drukuj (STR)
print (typ (str))
# Teraz konwersja bajtów na ciąg
wyjście = kodeki.dekoduj (str)
print ('\ noutput:')
Drukuj (wyjście)
print (typ (wyjście))

Wyjście:

b'blogs Linuxhint '

Wyjście:

Blogi Linuxhint

Linia 2: Importujemy kodeki biblioteczne.

Linia 3: Utworzyliśmy ciąg bajtowy.

Linia 4 do 5: Te wiersze po prostu wydrukują informacje o ciągu, który utworzyliśmy w wierszu 3.

Linia 8: Teraz nazywamy Caodecs.Dekoduj funkcję i zapisywanie wyniku do nowej nazwy zmiennej.

Linia 11 do 12: Te linie pokazują, że teraz nasz ciąg nie ma już typu bajtu i możemy potwierdzić typ wyjścia, który jest typem ciągu.

Metoda 4: Za pomocą funkcji str ()

Możemy również przekonwertować bajty na normalne ciągi za pomocą funkcji str (. Mały program do zrozumienia tej metody podano poniżej.

Jeśli __name__ == '__main__':
str1 = b'blogs Linuxhint '
Drukuj (STR)
print (typ (str))
# Teraz konwersja bajtów na ciąg
wyjście = str (str1, „UTF-8”)
print ('\ noutput:')
Drukuj (wyjście)
print (typ (wyjście))

Wyjście:


Wyjście:

Blogi Linuxhint

Linia 2: Utworzyliśmy ciąg bajtowy.

Linia 3 do 4: Te wiersze po prostu wydrukują informacje o ciągu, który utworzyliśmy w wierszu 3.

Linia 6: Teraz nazywamy funkcję str () i zapisujemy wynik do nowej nazwy zmiennej.

Linia 7 do 9: Te linie pokazują, że teraz nasz ciąg nie ma już typu bajtu i możemy potwierdzić typ wyjścia, który jest typem ciągu.

Wniosek

Jako programiści Python codziennie pracujemy nad różnymi językami, a czasem otrzymujemy błąd z powodu bajtów. Tak więc w tym artykule staramy się podać niektóre metody konwersji bajtów na ciąg, aby po zastosowaniu wszelkich metod związanych z ciągiem nie otrzymasz żadnego błędu.

W tym samouczku podaliśmy wszystkie pojęcia, których możemy użyć do konwersji bajtów na struny. Możesz wybrać zgodnie z wymaganiami programu.