Hướng dẫn what is a bytestring in python? - một bytestring trong python là gì?


Một chuỗi là một chuỗi các ký tự; Đây là một khái niệm trừu tượng và không thể được lưu trữ trực tiếp trên đĩa. Chuỗi byte là một chuỗi các byte - những thứ có thể được lưu trữ trên đĩa. Ánh xạ giữa chúng là một mã hóa - có khá nhiều trong số này (và vô hạn nhiều là có thể) - và bạn cần biết áp dụng nào trong trường hợp cụ thể để thực hiện chuyển đổi, vì một mã hóa khác có thể ánh xạ cùng một byte đến một chuỗi khác. Ví dụ, cùng một chuỗi byte có thể biểu thị 2 chuỗi khác nhau trong 2 mã hóa khác nhau. Ví dụ,

>>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-16')
'蓏콯캁澽苏'
>>> b'\xcf\x84o\xcf\x81\xce\xbdo\xcf\x82'.decode('utf-8')
'τoρνoς'

Khi bạn biết mã hóa nào sẽ sử dụng, bạn có thể sử dụng phương thức .decode () của chuỗi byte để lấy chuỗi ký tự phù hợp từ nó. Phương thức .encode () của chuỗi ký tự đi theo cách ngược lại và mã hóa chuỗi ký tự như một chuỗi byte.

Hướng dẫn what is a bytestring in python? - một bytestring trong python là gì?

Cập nhật vào ngày 30 tháng 9 năm 2019 08:21:31

  • Câu hỏi và câu trả lời liên quan
  • Chuyển đổi khóa bytestring: cặp từ điển giá trị thành chuỗi trong Python
  • Bọ ve trong Python là gì?
  • Thời gian biểu trong Python là gì?
  • Một không gian tên trong Python là gì?
  • Metaclass trong Python là gì?
  • Một biểu hiện chính quy trong Python là gì?
  • Toán tử DOT trong Python là gì?
  • Sự khác biệt giữa mô -đun Python và gói Python là gì?
  • Kiểu dữ liệu trình tự trong Python là gì?
  • Bộ mô tả tệp được sử dụng trong Python là gì?
  • Nhà điều hành @ trong Python là gì?
  • Điều gì là bất biến trong Python?
  • Iterweekdays () trong Python là gì?
  • Itermonthdates () trong Python là gì?
  • Itermonthdays2 () trong Python là gì?

Mã cho bài viết này có sẵn tại liên kết GitHub:

Một bytestring là gì?

Chuỗi byte là một mảng byte có độ dài cố định. A byte là một số nguyên chính xác trong khoảng từ 0 đến 255. Một chuỗi byte có thể bị thay đổi hoặc bất biến.

message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'


Là byte [] giống như chuỗi?

Các đối tượng byte là chuỗi byte, trong khi các chuỗi là chuỗi các ký tự. Các đối tượng byte ở dạng máy có thể đọc được nội bộ, các chuỗi chỉ ở dạng người có thể đọc được. Vì các đối tượng byte có thể đọc được máy, chúng có thể được lưu trữ trực tiếp trên đĩa.

bytes([source[, encoding[, errors]]])

Các đối tượng byte trong Python là gì?

Đối tượng byte là một trong những loại tích hợp cốt lõi để thao tác dữ liệu nhị phân. Đối tượng byte là một chuỗi bất biến của các giá trị byte đơn. Mỗi phần tử trong một đối tượng byte là một số nguyên nhỏ trong phạm vi từ 0 đến 255.


Tại sao chúng ta sử dụng byte trong Python?

Sự định nghĩa. Hàm python byte () được sử dụng để chuyển đổi một đối tượng thành đối tượng byte bất biến (không thể sửa đổi) của kích thước và dữ liệu đã cho. Hàm python byte () trả về đối tượng của một byte, đây là một chuỗi số nguyên số nguyên từ 0 đến 256.

  • Trong hướng dẫn này, chúng tôi sẽ tìm hiểu về phương thức python byte () với sự trợ giúp của các ví dụ. - source to initialize the array of bytes.
  • Phương thức bytes() trả về một đối tượng byte bất biến được khởi tạo với kích thước và dữ liệu đã cho. - if the source is a string, the encoding of the string.
  • Thí dụ - if the source is a string, the action to take when the encoding conversion fails (Read more: String encoding)

Byte () cú phápsource parameter can be used to initialize the byte array in the following ways:

Phương pháp cú pháp của phương pháp bytes() là:Phương thức bytes() Trả về một đối tượng byte là chuỗi số nguyên bất biến (không thể sửa đổi) trong phạm vi
message = 'Python is fun'

# convert string to bytes byte_message = bytes(message, 'utf-8')

print(byte_message) # Output: b'Python is fun'
2.
Nếu bạn muốn sử dụng phiên bản có thể thay đổi, hãy sử dụng phương thức bytearray ().tham số byte ()encoding and optionally errors
bytes() mất ba tham số tùy chọn:Nguồn (Tùy chọn) - Nguồn để khởi tạo mảng byte.
Mã hóa (tùy chọn) - Nếu nguồn là một chuỗi, mã hóa chuỗi.Lỗi (tùy chọn) - Nếu nguồn là một chuỗi, hành động cần thực hiện khi chuyển đổi mã hóa không thành công (đọc thêm: mã hóa chuỗi)
Tham số nguồn có thể được sử dụng để khởi tạo mảng byte theo các cách sau:Loại hình
Sự mô tảTạo một mảng có kích thước 0


byte () giá trị trả về

Phương thức bytes() trả về đối tượng byte của kích thước và giá trị khởi tạo đã cho.


Ví dụ 1: Chuyển đổi chuỗi thành byte

string = "Python is interesting."

# string with encoding 'utf-8'

arr = bytes(string, 'utf-8')

print(arr)

Đầu ra

b'Python is interesting.'

Ví dụ 2: Tạo một byte có kích thước số nguyên đã cho

size = 5

arr = bytes(size)

print(arr)

Đầu ra

b'\x00\x00\x00\x00\x00'

Ví dụ 2: Tạo một byte có kích thước số nguyên đã cho

rList = [1, 2, 3, 4, 5]

arr = bytes(rList)

print(arr)

Đầu ra

b'\x01\x02\x03\x04\x05'

Trong Python, bất cứ khi nào chúng tôi lưu trữ bất cứ thứ gì, nó sẽ lưu trữ nó như một byte. Các byte không thể đọc được của con người, và chuỗi là các dạng có thể đọc được của con người. Bất cứ khi nào chúng tôi lưu trữ bất kỳ chuỗi nào, nó sẽ không trực tiếp lưu trữ nó dưới dạng chuỗi; Nó sẽ được mã hóa thành các byte bằng các phương pháp khác nhau như ASCII và UTF-8.

Ví dụ: Tôi là một linuxhint hè.encode (‘ascii,), ‘I am a linuxhint’.encode (‘ASCII’)

Trong ví dụ trên, chúng tôi chuyển đổi chuỗi thành byte bằng phương thức mã hóa ASCII. Và khi chúng tôi in nó bằng phương pháp in Python, chúng tôi sẽ thấy các kết quả như b hèi là một linuxhint. Ở đây chúng ta có thể thấy rằng chuỗi chỉ theo một ký tự, b. Trong thực tế, chúng tôi không thể đọc các byte, nhưng ở đây hàm in Python giải mã các byte cho các dạng có thể đọc được của con người để chúng tôi có thể đọc các chuỗi.

Nhưng, trên thực tế, khi chúng ta chạy chuỗi này để xem từng ký tự của chuỗi byte, nó sẽ in như thế này:

1234
2
3
4

str1 = 'Tôi là một linuxhint'print (type (str1)) str2 = b'i am a linuxhint'print (type (str2))= 'I am a linuxhint'
print(type(str1))
str2 = b'I am a linuxhint'
print(type(str2))

Chúng tôi đã tạo ra hai chuỗi. Một chuỗi là đơn giản. Và chuỗi khác là byte. Khi chúng tôi in cả hai loại chuỗi, thì chúng tôi sẽ nhận được kết quả như hình dưới đây. Các kết quả dưới đây cho thấy một chuỗi là loại byte và một chuỗi khác là loại chuỗi.

Blog Linuxhintclass 'str'>
<class 'bytes'>

Bây giờ, chúng tôi sẽ in từng ký tự của cả hai chuỗi để tìm sự khác biệt giữa chúng. Đầu tiên, chúng tôi sẽ in một chuỗi (str1) bằng cách sử dụng một vòng lặp, đây là một chuỗi bình thường.

12
2

Đối với A In Str1: & NBSP; & nbsp; & nbsp; in (a) a in str1:
     print(a)

Output:

Tôi


m

một

l i n u x h i n t
i
n
u
x
h
i
n
t

Bây giờ, chúng ta sẽ in một chuỗi khác (str2) là loại byte.

12
2

cho A in str2: & nbsp; & nbsp; & nbsp; in (a) a in str2:
     print(a)

Output:

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

Từ các kết quả trên, chúng ta có thể thấy sự khác biệt giữa loại byte và loại chuỗi. Loại byte không phải là hình thức có thể đọc được của con người.

Vì vậy, bây giờ chúng ta sẽ thấy các phương pháp khác nhau có thể chuyển đổi byte thành chuỗi.

Phương pháp 1: Sử dụng hàm map (): Using the map() function

Trong phương thức này, chúng tôi sẽ sử dụng hàm map () để chuyển đổi byte thành định dạng chuỗi. Chương trình nhỏ dưới đây sẽ xóa khái niệm.

1234
2
3
4

byte = [97,99,100]= [97, 99, 100]

S = ''. Tham gia (bản đồ (chr, byte)) in (s)= ''.join(map(chr, byte))
print(s)

Output:

Dòng 1: Chúng tôi đã tạo một danh sách các byte tên.: We created a list of name byte.

Dòng 3: Sau đó, chúng tôi đã chuyển các ký tự của phần tử trong danh sách dưới dạng tham số và byte dưới dạng tham số cho hàm nối (), sẽ tham gia tất cả các ký tự sau khi chuyển đổi. Cuối cùng, kết quả được in.: We then passed the characters of the element in the list as a parameter and a byte as a parameter to the join() function, which will join all the characters after conversion. Finally, the result is printed.

Phương pháp 2: Sử dụng hàm Decode (): Using decode () function

Một phương thức khác là hàm giải mã (). Hàm giải mã hoạt động chỉ đối diện với hàm mã hóa ().

123456789101112
2
3
4
5
6
7
8
9
10
11
12

#convert byte thành chuỗi bằng cách sử dụng Decode ()

str = b'blogs linuxhint'print (str) in (loại (str)) = b'blogs linuxhint'
print(str)
print(type(str))

# Bây giờ chuyển đổi byte thành chuỗi đầu ra = str.decode ()
output = str.decode()

in ('\ noutput:') in (đầu ra) in (loại (đầu ra))('\nOutput:')
print(output)
print(type(output))

Output:

b'blogs linuxhint ''blogs linuxhint'
<class 'bytes'>

Output:

Blog Linuxhint
<class 'str'>

Dòng 3: Chúng tôi đã tạo một chuỗi byte.: We have created a byte string.

Dòng 4 đến 5: Những dòng này chỉ in thông tin về chuỗi chúng tôi đã tạo ở dòng 3.: These lines just print information about the string we created at line 3.

Dòng 8: Bây giờ, chúng tôi gọi hàm giải mã và lưu kết quả vào một tên biến mới.: Now, we call the decode function and save the result to a new variable name.

Dòng 11 đến 12: Những dòng này cho thấy bây giờ chuỗi của chúng tôi hiện không còn loại byte và chúng tôi có thể xác nhận loại đầu ra, đây là loại chuỗi.: These lines show that now our string has now no longer byte type and that we can confirm the type of the output, which is a string type.

Phương pháp 3: Sử dụng hàm codecs.decode (): Using the codecs.decode () function

Trong phương thức này, chúng tôi sẽ sử dụng hàm codecs.decode (). Hàm này được sử dụng để chuyển đổi chuỗi nhị phân thành các dạng bình thường. Vì vậy, hãy để xem cách chức năng này thực sự hoạt động.

123456789101112
2
3
4
5
6
7
8
9
10
11
12

#convert byte để chuỗi bằng codecs () intertcodecsstr = b'blogs linuxhint'print (str) in (loại (str))
import codecs
str = b'blogs linuxhint'
print(str)
print(type(str))

# Bây giờ chuyển đổi byte thành chuỗi đầu ra = codecs.decode (str)
output = codecs.decode(str)

in ('\ noutput:') in (đầu ra) in (loại (đầu ra))('\nOutput:')
print(output)
print(type(output))

Output:

b'blogs linuxhint ''blogs linuxhint'
<class 'bytes'>

Output:

Blog Linuxhint
<class 'str'>

Dòng 2: & nbsp; Chúng tôi nhập các codec thư viện.We import the library codecs.

Dòng 3: Chúng tôi đã tạo một chuỗi byte.: We have created a byte string.

Dòng 4 đến 5: Những dòng này chỉ in thông tin về chuỗi chúng tôi đã tạo ở dòng 3.: These lines just print information about the string we created at line 3.

Dòng 8: Bây giờ chúng tôi đang gọi chức năng CAODECS.Decode và lưu kết quả vào một tên biến mới.: Now we are calling the caodecs.decode function and saving the result to a new variable name.

Dòng 11 đến 12: Những dòng này cho thấy bây giờ chuỗi của chúng tôi không còn loại byte và chúng tôi có thể xác nhận loại đầu ra, đây là loại chuỗi.: These lines show that now our string has no longer of byte type, and we can confirm the type of the output, which is a string type.

Phương pháp 4: Sử dụng hàm str (): Using the str () function

Chúng ta cũng có thể chuyển đổi các byte thành các chuỗi bình thường bằng hàm str (). Chương trình nhỏ để hiểu phương pháp này được đưa ra dưới đây.

123456789
2
3
4
5
6
7
8
9

Nếu __name__ == '__ main__': & nbsp; & nbsp; & nbsp; & nbsp; str1 = b'blogs linuxhint '& nbsp; & nbsp; & nbsp; & nbsp; in (str) & nbsp; & nbsp; & nbsp; & nbsp; in (loại (str)) & nbsp; & nbsp; & nbsp; & nbsp; # bây giờ chuyển đổi byte thành chuỗi & nbsp; & nbsp; & nbsp; & nbsp; đầu ra = str (str1, 'utf-8') & nbsp; & nbsp; & nbsp; & nbsp; in ('\ noutput:') & nbsp; & nbsp; & nbsp; & nbsp; in (đầu ra) & nbsp; & nbsp; & nbsp; & nbsp; in (loại (đầu ra)) __name__ == '__main__':
        str1 = b'blogs linuxhint'
        print(str)
        print(type(str))
        # now converting bytes to string
        output = str(str1, 'utf-8')
        print('\nOutput:')
        print(output)
        print(type(output))

Output:

# Bây giờ chuyển đổi byte thành chuỗi đầu ra = codecs.decode (str)class 'str'>
<class 'type'>

Output:

Blog Linuxhint
<class 'str'>

Dòng 2: & nbsp; Chúng tôi nhập các codec thư viện.: We have created a byte string.

Dòng 3: Chúng tôi đã tạo một chuỗi byte.: These lines just print information about the string we created at line 3.

Dòng 4 đến 5: Những dòng này chỉ in thông tin về chuỗi chúng tôi đã tạo ở dòng 3.: Now, we call the str () function and save the result to a new variable name.

Dòng 8: Bây giờ chúng tôi đang gọi chức năng CAODECS.Decode và lưu kết quả vào một tên biến mới.: These lines show that now our string has no longer byte type, and we can confirm the type of the output, which is a string type.

Dòng 11 đến 12: Những dòng này cho thấy bây giờ chuỗi của chúng tôi không còn loại byte và chúng tôi có thể xác nhận loại đầu ra, đây là loại chuỗi.

Phương pháp 4: Sử dụng hàm str ()

Chúng ta cũng có thể chuyển đổi các byte thành các chuỗi bình thường bằng hàm str (). Chương trình nhỏ để hiểu phương pháp này được đưa ra dưới đây.

Nếu __name__ == '__ main__': & nbsp; & nbsp; & nbsp; & nbsp; str1 = b'blogs linuxhint '& nbsp; & nbsp; & nbsp; & nbsp; in (str) & nbsp; & nbsp; & nbsp; & nbsp; in (loại (str)) & nbsp; & nbsp; & nbsp; & nbsp; # bây giờ chuyển đổi byte thành chuỗi & nbsp; & nbsp; & nbsp; & nbsp; đầu ra = str (str1, 'utf-8') & nbsp; & nbsp; & nbsp; & nbsp; in ('\ noutput:') & nbsp; & nbsp; & nbsp; & nbsp; in (đầu ra) & nbsp; & nbsp; & nbsp; & nbsp; in (loại (đầu ra))

https://github.com/shekharpandey89/bytes-to-string-using-python

Một bytestring là gì?

Chuỗi byte là một mảng byte có độ dài cố định.A byte là một số nguyên chính xác trong khoảng từ 0 đến 255.Một chuỗi byte có thể bị thay đổi hoặc bất biến.a fixed-length array of bytes. A byte is an exact integer between 0 and 255 inclusive. A byte string can be mutable or immutable.

Là byte [] giống như chuỗi?

Các đối tượng byte là chuỗi byte, trong khi các chuỗi là chuỗi các ký tự.Các đối tượng byte ở dạng máy có thể đọc được nội bộ, các chuỗi chỉ ở dạng người có thể đọc được.Vì các đối tượng byte có thể đọc được máy, chúng có thể được lưu trữ trực tiếp trên đĩa.. Byte objects are in machine readable form internally, Strings are only in human readable form. Since Byte objects are machine readable, they can be directly stored on the disk.

Các đối tượng byte trong Python là gì?

Đối tượng byte là một trong những loại tích hợp cốt lõi để thao tác dữ liệu nhị phân.Đối tượng byte là một chuỗi bất biến của các giá trị byte đơn.Mỗi phần tử trong một đối tượng byte là một số nguyên nhỏ trong phạm vi từ 0 đến 255.one of the core built-in types for manipulating binary data. A bytes object is an immutable sequence of single byte values. Each element in a bytes object is a small integer in the range of 0 to 255.

Tại sao chúng ta sử dụng byte trong Python?

Sự định nghĩa.Hàm python byte () được sử dụng để chuyển đổi một đối tượng thành đối tượng byte bất biến (không thể sửa đổi) của kích thước và dữ liệu đã cho.Hàm python byte () trả về đối tượng của một byte, đây là một chuỗi số nguyên số nguyên từ 0 đến 256.to convert an object to an immutable (cannot be modified) byte object of the given size and data. The Python bytes() function returns a byte's object, which is an immutable series of integer numbers ranging from 0 to 256.