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ốiChà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ángPython 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
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
1Giả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
3Sự 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