Làm cách nào để chuyển đổi danh sách byte thành chuỗi trong Python?

pacscaloupsu
nuốt không tải

Bài đăng. 3

Chủ đề. 1

Đã tham gia. Tháng 5 năm 2019

Danh tiếng. 0

May-14-2019, 08. 49 giờ tối

Chào mọi người

Tôi muốn trích xuất các byte đầu tiên của tệp nhị phân và chuyển đổi chúng thành chuỗi, trong danh sách

def binaryMethod[files, lenI]:
outList = [] 
for _ in range[lenI]:
            # read the length of the next string [read only the first 4 bytes] 
            blen = int[ceil[float[unpack['>I', files.read[4]][0]] / 4] * 4]
            # store the  string into outList
            outList.append[str[unpack['%ds' % blen, files.read[blen]][0]].replace["\x00", ""]]
trong đó lenI là một số nguyên.
tệp là tệp nhị phân.
Phương thức này hoạt động trong Python 2 nhưng không hoạt động trong Python 3


trong Python 3, khi tôi thực hiện_______1_______

Output:

["b\'RT\\\\x00\\\\x00\'", "b\'RT\\\\x00\\\\x00\'", "b\'ts\\\\x00\\\\x00\'", "b\'MI\\\\x00\\\\x00\', ..."
Trong khi tôi đang mong đợi một cái gì đó như. ["RT1", "RT2," "ts1", "MI1",. ]

Cảm ơn rất nhiều về sự trợ giúp của bạn

Hồi đáp

Tìm thấy

Hồi đáp

đánh dấu
Lập trình viên tên Tim

Bài đăng. 5

Chủ đề. 0

Đã tham gia. Tháng 10 năm 2019

Danh tiếng. 0

17-03-2020, 07. 21 giờ sáng

Python phân biệt rõ ràng giữa byte và chuỗi. Các đối tượng byte chứa dữ liệu thô - một chuỗi octet - trong khi các chuỗi là các chuỗi Unicode. Chuyển đổi giữa hai loại này là rõ ràng. bạn mã hóa một chuỗi để nhận byte, chỉ định mã hóa [mặc định là UTF-8]; . Khách hàng của các chức năng này nên biết rằng các chuyển đổi như vậy có thể không thành công và nên xem xét cách xử lý các lỗi đó.

Chúng ta có thể chuyển đổi byte thành chuỗi bằng cách sử dụng phương thức đối tượng giải mã lớp byte [], vì vậy bạn cần giải mã đối tượng byte để tạo chuỗi. Trong Python 3, mã hóa mặc định là "utf-8", vì vậy bạn có thể sử dụng trực tiếp

b"byte python thành chuỗi". giải mã ["utf-8"]

Hồi đáp

Tìm thấy

Hồi đáp

Chúng ta có thể chuyển đổi byte thành Chuỗi bằng cách sử dụng phương thức đối tượng giải mã lớp byte [], vì vậy bạn cần giải mã đối tượng byte để tạo chuỗi. Trong Python 3, mã hóa mặc định là "utf-8", vì vậy bạn có thể sử dụng trực tiếp

đầu ra

tương đương với

đầu ra

Trong Python 2, mã hóa mặc định thành mã hóa chuỗi mặc định. Vì vậy, bạn nên sử dụng

đầu ra

Chúng ta có thể chuyển đổi chuỗi thành byte bằng cách sử dụng phương thức đối tượng encode[], vì vậy bạn cần mã hóa đối tượng chuỗi để tạo ra một byte

đầu ra

Ngoài ra, phương thức bytes[] của Python trả về một đối tượng bytes có kích thước và giá trị khởi tạo đã cho

đầu ra

Cả hai phương pháp trên để chuyển đổi một chuỗi thành byte đều hoàn toàn ổn. Phương thức mã hóa chuỗi [] và giải mã [] cung cấp tính đối xứng trong khi hàm tạo byte [] là cách tiếp cận hướng đối tượng và dễ đọc hơn. Bạn có thể chọn bất kỳ trong số họ dựa trên sở thích của bạn

Python phân biệt rõ ràng giữa byte và chuỗi. Các đối tượng byte chứa dữ liệu thô - một chuỗi octet - trong khi các chuỗi là các chuỗi Unicode. Chuyển đổi giữa hai loại này là rõ ràng. bạn mã hóa một chuỗi để nhận byte, chỉ định mã hóa [mặc định là UTF-8]; . Khách hàng của các chức năng này nên biết rằng các chuyển đổi như vậy có thể không thành công và nên xem xét cách xử lý các lỗi đó.

Trong python, chúng tôi đã thảo luận về nhiều khái niệm và chuyển đổi. Nhưng đôi khi, chúng ta gặp phải tình huống cần chuyển đổi byte thành chuỗi trong python. Trong hướng dẫn này, chúng ta sẽ thảo luận về cách chuyển đổi byte thành chuỗi trong python. Vì việc chuyển đổi các phần tử là một tiện ích hữu ích vì nó cung cấp nó theo cách đơn giản hơn nhiều so với các ngôn ngữ khác

nội dung

Kiểu dữ liệu Byte trong Python là gì?

Nếu bạn đã quen thuộc với python, thì bạn phải biết về kiểu dữ liệu byte. Nhưng nếu ai đó không thân thiện với Python, thì chúng tôi sẽ giải thích khái niệm này. Hãy hiểu điều này với ví dụ sau

str1 = 'Python Pool'  
print[type[str1]]  
str2 = b'Python Pool'  
print[type[str2]] 

đầu ra


Giải trình

  • Chúng tôi đã xác định hai chuỗi có cùng giá trị là 'Python Pool. ’
  • Cả hai giá trị trông giống nhau, nhưng kiểu dữ liệu của chúng không giống nhau
  • Biến chuỗi đầu tiên, i. e. , str1, thuộc kiểu dữ liệu chuỗi và một số khác thuộc kiểu dữ liệu byte
  • Chuỗi thứ hai có tiền tố là 'b', nói rằng nó tạo ra kiểu dữ liệu byte thay vì kiểu dữ liệu chuỗi
  • Do đó, bạn có thể thấy đầu ra

Các cách chuyển đổi byte thành chuỗi

Ở đây, chúng ta sẽ thảo luận về tất cả các cách khác nhau để chúng ta có thể chuyển đổi byte thành chuỗi

1. Sử dụng bản đồ [] mà không sử dụng tiền tố b

Trong ví dụ này, chúng ta sẽ sử dụng hàm map để chuyển đổi một byte thành một chuỗi mà không cần sử dụng tiền tố b. Chúng ta hãy xem ví dụ để hiểu khái niệm này một cách chi tiết

byte = [97, 98, 99]
 
s = ''.join[map[chr, byte]]
print[s]

đầu ra

abc

Giải trình

  • Đầu tiên, chúng tôi đã lấy một danh sách làm đầu vào được lưu trữ trong biến byte
  • Sau đó, chúng ta đã áp dụng hàm join[] bên trong, trong đó chúng ta đã áp dụng hàm map với các ký tự của phần tử trong danh sách và byte làm tham số. Sau khi chuyển đổi, nó sẽ tham gia tất cả các ký tự
  • Cuối cùng, chúng tôi đã in đầu ra
  • Do đó, bạn có thể thấy chuỗi có tiền tố b

2. Sử dụng hàm Decode[] để chuyển đổi byte thành chuỗi trong Python

Trong ví dụ này, chúng ta sẽ sử dụng hàm decode[]. Hàm được sử dụng để chuyển đổi từ lược đồ mã hóa, trong đó chuỗi đối số được mã hóa thành lược đồ mã hóa mong muốn. Điều này hoạt động ngược lại với mã hóa. Chúng ta hãy xem ví dụ để hiểu khái niệm này một cách chi tiết

#convert bytes to string using decode[]

str = b'Pythonpool'

# display input
print['\nInput:']
print[str]
print[type[str]]

# converting
output = str.decode[]

# display output
print['\nOutput:']
print[output]
print[type[output]]

đầu ra

________số 8_______

Giải trình

  • Đầu tiên, chúng tôi đã lấy một chuỗi đầu vào trong biến str có giá trị là 'Pythonpool. ’
  • Khi đó ta đã hiển thị chuỗi nhập vào và in ra kiểu dữ liệu của chuỗi
  • Sau đó, chúng tôi đã áp dụng chức năng giải mã [] và lưu trữ đầu ra trong biến đầu ra
  • Cuối cùng, chúng ta đã in chuỗi trong biến đầu ra và kiểu dữ liệu của biến đó
  • Do đó, bạn có thể thấy đầu ra

3. Sử dụng hàm str[] để chuyển đổi byte thành chuỗi trong Python

Trong ví dụ này, chúng ta sẽ sử dụng hàm str[]. Hàm được sử dụng để trả về phiên bản chuỗi của đối tượng. Chúng ta hãy xem ví dụ để hiểu khái niệm này một cách chi tiết

# convert bytes to string using str[]
str = b'Pythonpool'

# display input
print['\nInput:']
print[str]
print[type[str]]

# converting
output = str[str, 'UTF-8']

# display output
print['\nOutput:']
print[output]
print[type[output]]

đầu ra

Input:
b'Pythonpool'


Output:

Pythonpool

Giải trình

  • Đầu tiên, chúng tôi đã lấy một chuỗi đầu vào trong biến str có giá trị là 'Pythonpool. ’
  • Khi đó ta đã hiển thị chuỗi nhập vào và in ra kiểu dữ liệu của chuỗi
  • Sau đó, chúng tôi đã áp dụng hàm str[] với cả hai tham số của nó là chuỗi đầu vào và UTF-8 và lưu trữ đầu ra trong biến đầu ra
  • Cuối cùng, chúng ta đã in chuỗi trong biến đầu ra và kiểu dữ liệu của biến đó
  • Do đó, bạn có thể thấy đầu ra

4. Sử dụng codec. hàm decode[] để chuyển đổi byte thành chuỗi trong Python

Trong ví dụ này, chúng tôi sẽ sử dụng codec. chức năng giải mã []. Hàm này được sử dụng để giải mã chuỗi nhị phân thành dạng bình thường. Chúng ta hãy xem ví dụ để hiểu khái niệm này một cách chi tiết

#convert bytes to string using codecs.decode[]
# import codecs
import codecs

str = b'Pythonpool'

# display input
print['\nInput:']
print[str]
print[type[str]]

# converting
output = codecs.decode[str]

# display output
print['\nOutput:']
print[output]
print[type[output]]

đầu ra

________số 8_______

Giải trình

  • Đầu tiên, chúng tôi đã nhập mô-đun codec
  • Sau đó, chúng tôi đã lấy một chuỗi đầu vào trong biến str có giá trị là 'Pythonpool. ’
  • Khi đó ta đã hiển thị chuỗi nhập vào và in ra kiểu dữ liệu của chuỗi
  • Sau đó, chúng tôi đã áp dụng các codec. decode[] và lưu trữ đầu ra trong biến đầu ra
  • Cuối cùng, chúng ta đã in chuỗi trong biến đầu ra và kiểu dữ liệu của biến đó
  • Do đó, bạn có thể thấy đầu ra

5. Sử dụng gấu trúc để chuyển đổi byte thành chuỗi trong Python

Trong ví dụ này, chúng tôi sẽ nhập thư viện pandas. Sau đó, chúng ta sẽ lấy tập dữ liệu đầu vào và áp dụng hàm decode[]. Chúng ta hãy xem ví dụ để hiểu khái niệm này một cách chi tiết


0

đầu ra


1

Giải trình

  • Đầu tiên, chúng tôi sẽ nhập thư viện của gấu trúc với tên bí danh là pd
  • Sau đó, chúng tôi sẽ lấy khung dữ liệu đầu vào
  • Sau đó, chúng tôi sẽ áp dụng pandas. khung dữ liệu với data=d làm tham số
  • Sau đó, chúng ta sẽ áp dụng hàm decode[] trong dữ liệu
  • Cuối cùng, chúng tôi sẽ in đầu ra
  • Do đó, bạn có thể thấy đầu ra

Cách giải mã [] có thể xóa tiền tố b của chuỗi

Hàm Decode[] dùng để loại bỏ tiền tố b của một chuỗi. Hàm được sử dụng để chuyển đổi từ lược đồ mã hóa, trong đó chuỗi đối số được mã hóa thành lược đồ mã hóa mong muốn, qua đó tiền tố b được loại bỏ. Chúng ta hãy xem ví dụ để hiểu khái niệm này một cách chi tiết


2

đầu ra


3

Sự khác biệt giữa kiểu dữ liệu byte và chuỗi trong Python

Kiểu dữ liệu chuỗi

Đó là một chuỗi các ký tự Unicode [được mã hóa bằng UTF -16 hoặc UTF-32 và hoàn toàn phụ thuộc vào quá trình biên dịch của Python]

kiểu dữ liệu byte

Nó được sử dụng để biểu thị một số nguyên trong khoảng từ 0 đến 255 và chúng ta có thể biểu thị nó là 'b' hoặc 'B'. ’

Ngoài ra, hãy đọc >> 4 cách tốt nhất để chuyển đổi hệ thập lục phân thành thập phân trong Python

Phần kết luận

Trong hướng dẫn này, chúng ta đã tìm hiểu về khái niệm chuyển đổi byte thành chuỗi trong python. Chúng tôi đã thảo luận về tất cả các cách mà chúng tôi có thể chuyển đổi byte thành chuỗi. Tất cả các cách được giải thích chi tiết với sự trợ giúp của các ví dụ. Bạn có thể sử dụng bất kỳ chức năng nào theo sự lựa chọn và yêu cầu của bạn trong chương trình

Tuy nhiên, nếu bạn có bất kỳ nghi ngờ hoặc câu hỏi nào, hãy cho tôi biết trong phần bình luận bên dưới. Tôi sẽ cố gắng giúp bạn trong thời gian sớm nhất

Làm cách nào để chuyển đổi một mảng byte thành chuỗi Python?

Sử dụng hàm decode[] để chuyển đổi Bytearray thành String trong Python. Một cách khác để chuyển đổi một mảng phụ thành chuỗi là sử dụng phương thức decode[]. Phương thức giải mã [], khi được gọi trên một đối tượng bytearray, sẽ lấy định dạng mã hóa làm đầu vào và trả về chuỗi đầu ra.

Làm cách nào để chuyển đổi byte thành chuỗi trong gấu trúc?

Sử dụng từ khóa nhập để nhập mô-đun gấu trúc. Tạo khung dữ liệu gấu trúc của từ điển đầu vào ở trên bằng hàm DataFrame[]. Chuyển đổi các giá trị của cột quần áo thành chuỗi [từ byte] thành chuỗi bằng hàm giải mã [] và lưu trữ khung dữ liệu kết quả này trong một biến

Làm cách nào để chuyển đổi byte Unicode thành chuỗi Python 3?

Để chuyển chuỗi byte thành Unicode hãy sử dụng chuỗi byte. decode[] phương pháp và sử dụng str. encode[] để chuyển đổi Unicode thành chuỗi byte . Cả hai phương pháp đều cho phép mã hóa bộ ký tự được chỉ định làm tham số tùy chọn nếu yêu cầu một thứ khác ngoài UTF-8.

Làm cách nào để chuyển đổi một mảng byte thành chuỗi?

Có 2 cách để chuyển mảng byte thành String. .
Bằng cách sử dụng hàm tạo của lớp String
Bằng cách sử dụng mã hóa UTF-8

Chủ Đề