Python đọc tệp nhị phân thành ascii

Cảnh báo. Có vẻ như bạn đang sử dụng Dodona trong một trang web khác, vì vậy có thể không phải mọi thứ đều hoạt động bình thường. Hãy cho giáo viên của bạn biết để họ có thể giải quyết vấn đề bằng cách điều chỉnh môi trường học tập. Trong thời gian chờ đợi, bạn có thể nhấp vào liên kết này để mở Dodona trong một cửa sổ mới

Python cho phép bạn xử lý nhiều loại tệp như tệp văn bản, tệp csv và thậm chí cả hình ảnh. Đôi khi bạn có thể cần đọc tệp nhị phân trong python. Trong bài viết này, chúng ta sẽ xem xét cách đọc tệp nhị phân trong python. Chúng tôi cũng sẽ xem xét các trường hợp sử dụng khác nhau của việc đọc tệp nhị phân thường được các nhà phát triển sử dụng


Cách đọc tệp nhị phân trong Python

Đây là cách đọc tệp nhị phân trong python. Giả sử bạn có một tệp nhị phân tại /home/ubuntu/data. thùng rác. Trước tiên, chúng tôi sẽ ghi một số dữ liệu vào tệp nhị phân của mình. Để làm được điều đó, bạn có thể mở tệp bằng chức năng mở với cờ wb

file = open("/home/ubuntu/data.bin","wb")
sentence = bytearray("Hello world".encode("ascii"))
file.write(sentence)
file.close()

Chúng tôi sử dụng chức năng mã hóa để mã hóa chuỗi đầu tiên của chúng tôi thành mã hóa ký tự ascii. Sau đó, chúng tôi sử dụng hàm bytearray để chuyển đổi thành một mảng byte. Chúng tôi sử dụng tập tin. viết chức năng để ghi vào tập tin và tập tin. chức năng đóng để đóng tệp

Xin lưu ý, bạn có thể đọc/ghi bất kỳ tệp nào, không chỉ,. tệp bin, mà còn. văn bản,. csv hoặc bất kỳ tệp nào khác dưới dạng tệp nhị phân. Khi bạn chỉ định các cờ rb và wb bằng lệnh open, python sẽ tự động đọc và ghi tệp ở chế độ nhị phân


Đọc byte từ tệp nhị phân

Bây giờ bạn có thể dễ dàng đọc tệp bằng chức năng đọc

file = open("/home/ubuntu/data.bin","rb")
print(file.read(4))
file.close()

Trong đoạn mã trên, chúng tôi mở tệp bằng chức năng mở và cờ rb. Sau đó, chúng tôi sử dụng chức năng đọc để đọc 4 byte từ nó, nghĩa là 4 ký tự. Chúng tôi sử dụng chức năng in để in nó và cuối cùng đóng tệp. Đây là đầu ra của lệnh trên

Hell


Đọc tệp nhị phân thành mảng

Đôi khi bạn có thể muốn đọc các byte từ hệ nhị phân sang một mảng. Trong những trường hợp như vậy, bạn có thể dễ dàng thực hiện việc này bằng cách sử dụng hàm list() như bên dưới

file = open("/home/ubuntu/data.bin","rb")
arr=list(file.read(4))
print(arr)
file.close()

Trong đoạn mã trên, chúng tôi mở tệp ở chế độ nhị phân để đọc. Sau đó sử dụng chức năng đọc để đọc 4 byte đầu tiên. Ta truyền vào hàm list() để chuyển chuỗi thành mảng. Đây là đầu ra của mã trên

['H','e','l','l']


Python đọc từng dòng tệp nhị phân

Nhiều lần bạn có thể cần đọc từng dòng tệp nhị phân. Trong trường hợp này, trước tiên chúng tôi viết nhiều dòng vào tệp của mình bằng hàm writelines như được hiển thị

lines=["Welcome to fedingo","Good Morning"]
file=open("/home/ubuntu/data.bin","wb")
file.writelines(lines)
file.close()

Đoạn mã trên sẽ viết 2 dòng vào tệp của chúng tôi. Bây giờ chúng tôi sẽ mở lại tệp của mình để đọc ở chế độ nhị phân và sử dụng hàm readline để đọc một dòng từ tệp đó

file=open("/home/ubuntu/data.bin","rb")
line=file.readline()
print(line)
file.close()

Đây là đầu ra của lệnh trên

Welcome to Fedingo

Trong bài viết này, chúng tôi đã xem xét nhiều cách khác nhau để đọc và ghi tệp nhị phân. Điều quan trọng cần lưu ý là bạn có thể mở bất kỳ tệp nào dưới dạng tệp nhị phân, sử dụng cờ rb và wb để đọc và ghi tương ứng. Khi bạn đã mở tệp, hãy sử dụng hàm read() để đọc byte từ và hàm write() để ghi byte tương ứng vào tệp nhị phân của bạn. Ngoài ra, bạn có thể sử dụng hàm readline() để đọc các dòng từ và writelines() để ghi các dòng tương ứng vào tệp nhị phân của bạn

Tệp chứa dữ liệu nhị phân được gọi là tệp nhị phân. Mọi dữ liệu nhị phân được định dạng hoặc không được định dạng đều được lưu trữ trong tệp nhị phân và tệp này không thể đọc được ở người và được máy tính sử dụng trực tiếp. Khi tệp nhị phân được yêu cầu đọc hoặc chuyển từ vị trí này sang vị trí khác, nội dung của tệp được chuyển đổi hoặc mã hóa thành định dạng mà con người có thể đọc được. Phần mở rộng của tệp nhị phân là. thùng rác. Nội dung của tệp nhị phân có thể được đọc bằng cách sử dụng chức năng hoặc mô-đun tích hợp. Các cách khác nhau để đọc tệp nhị phân trong Python đã được trình bày trong hướng dẫn này

Điều kiện tiên quyết

Trước khi kiểm tra các ví dụ của hướng dẫn này, tốt hơn là tạo một hoặc nhiều tệp nhị phân để sử dụng trong tập lệnh mẫu. Kịch bản của hai tệp python đã đưa ra bên dưới để tạo hai tệp nhị phân. nhị phân1. py sẽ tạo một tệp nhị phân có tên chuỗi. bin sẽ chứa dữ liệu chuỗi và tệp nhị phân2. py sẽ tạo một tệp nhị phân có tên number_list. bin sẽ chứa danh sách dữ liệu số

nhị phân1. py

# Mở trình xử lý tệp để tạo tệp nhị phân

file_handler = mở("string. bin", "wb")

# Thêm hai dòng văn bản vào tệp nhị phân

file_handler. viết( b "Chào mừng bạn đến với LinuxHint. \n Tìm hiểu lập trình Python. ")

# Đóng trình xử lý tệp

file_handler. đóng()

nhị phân2. py

# Mở trình xử lý tệp để tạo tệp nhị phân

tệp=mở("number_list. bin","wb")

# Khai báo danh sách các giá trị số

số =[10,30,45,60,70,85,99]

# Chuyển đổi danh sách thành mảng

dãy =dãy byte( số )

# Ghi mảng vào file

tệp . viết( xóa )

tệp . đóng()

Ví dụ 1. Đọc tệp nhị phân của dữ liệu chuỗi vào mảng byte

Nhiều cách tồn tại trong Python để đọc tệp nhị phân. Bạn có thể đọc số byte cụ thể hoặc toàn bộ nội dung của tệp nhị phân tại một thời điểm. Tạo một tệp python với đoạn mã sau. Hàm open() dùng để mở chuỗi. thùng để đọc. Hàm read() đã được sử dụng để đọc 7 ký tự từ tệp trong mỗi lần lặp của vòng lặp while và in. Tiếp theo, hàm read() đã được sử dụng mà không có bất kỳ đối số nào để đọc toàn bộ nội dung của tệp nhị phân sẽ được in sau này

# Mở tệp nhị phân để đọc

file_handler = mở("string. bin", "rb")

# Đọc ba byte đầu tiên từ tệp nhị phân

data_byte = file_handler. đọc(7)

in("In ba ký tự trong mỗi lần lặp. ")

# Lặp lại vòng lặp để đọc phần còn lại của tệp

while data_byte.

    in( byte_dữ liệu )

    data_byte = file_handler. đọc(7)


# Đọc toàn bộ tệp dưới dạng một chuỗi byte đơn

với mở('string. bin', 'rb') as fh:

    nội dung = fh. đọc()

in("In toàn bộ nội dung của tệp nhị phân. ")

in( nội dung )

đầu ra

Đầu ra sau sẽ xuất hiện sau khi thực hiện đoạn mã trên

Python đọc tệp nhị phân thành ascii

Ví dụ-2. Đọc tệp nhị phân của dữ liệu chuỗi vào mảng

Tạo tệp python với tập lệnh sau để đọc tệp nhị phân có tên number_list. thùng đã tạo trước đó. Tệp nhị phân này chứa danh sách dữ liệu số. Giống như ví dụ trước, hàm open() đã sử dụng mở tệp nhị phân để đọc trong tập lệnh. Tiếp theo, 5 số đầu tiên sẽ được đọc từ tệp nhị phân và chuyển đổi thành danh sách trước khi in

# Mở tệp nhị phân để đọc

tệp = mở("number_list. bin", "rb")

# Đọc năm số đầu tiên thành một danh sách

số = danh sách(tệp.đọc(5))

# In danh sách

in( số )

# Đóng tệp

tệp . đóng()

đầu ra

Đầu ra sau sẽ xuất hiện sau khi thực hiện đoạn mã trên. Tệp nhị phân chứa 7 số và năm số đầu tiên được in ở đầu ra

Python đọc tệp nhị phân thành ascii

Ví dụ-3. Đọc tệp nhị phân bằng NumPy

Các cách tạo tệp nhị phân bằng cách sử dụng mảng NumPy và đọc nội dung của tệp nhị phân bằng cách sử dụng danh sách bằng cách sử dụng mô-đun NumPy đã được trình bày trong phần này của hướng dẫn. Trước khi kiểm tra tập lệnh được cung cấp bên dưới, bạn phải cài đặt mô-đun NumPy bằng cách thực thi lệnh từ thiết bị đầu cuối hoặc cài đặt gói NumPy trong trình chỉnh sửa Python, nơi tập lệnh sẽ được thực thi. Hàm tofile() được sử dụng để tạo tệp văn bản hoặc tệp nhị phân và hàm fromfile() được sử dụng để tạo một mảng bằng cách đọc tệp văn bản hoặc tệp nhị phân

Cú pháp của tofile()

ndarray. tofile(file, sep ='', format='%s')

Đối số đầu tiên là bắt buộc và lấy tên tệp hoặc chuỗi hoặc đường dẫn làm giá trị. Tệp sẽ được tạo nếu tên tệp được cung cấp trong đối số này. Đối số thứ hai là tùy chọn được sử dụng để phân tách các phần tử mảng. Đối số thứ ba cũng là tùy chọn và được sử dụng để định dạng đầu ra của tệp văn bản

Cú pháp của fomfile()

numpy. từ tệp(tệp, dtype =float, count=- 1, sep='', offset=0, *, like=None)

Đối số đầu tiên là bắt buộc và lấy tên tệp hoặc chuỗi hoặc đường dẫn làm giá trị. Nội dung của tệp sẽ được đọc nếu tên tệp sẽ được cung cấp trong đối số này. dtype xác định kiểu dữ liệu của mảng được trả về. Số lượng được sử dụng để đếm số lượng mặt hàng. Mục đích của sep là để phân tách các mục văn bản hoặc mảng. Phần bù được sử dụng để xác định vị trí hiện tại của tệp. Đối số cuối cùng được sử dụng để tạo một đối tượng mảng không phải là mảng NumPy

Tạo tệp python với tập lệnh sau để tạo tệp nhị phân bằng mảng NumPy và đọc và in nội dung của tệp nhị phân

# Nhập mô-đun NumPy

nhập numpy as np

# Khai báo mảng numpy

nparray = np. mảng([34, 89, 30, 45, 90, 11])

# Tạo tập tin nhị phân từ mảng numpy

mảng np. tofile("list. thùng")

# In dữ liệu từ tệp nhị phân

in( np. từ tệp("danh sách. bin", dtype = np. int64))

đầu ra

Đầu ra sau sẽ xuất hiện sau khi thực hiện đoạn mã trên

Python đọc tệp nhị phân thành ascii

Phần kết luận

Ba cách khác nhau để đọc tệp nhị phân đã được trình bày trong hướng dẫn này bằng cách sử dụng các ví dụ đơn giản. Ví dụ đầu tiên trả về nội dung của tệp nhị phân dưới dạng một mảng byte. Ví dụ thứ hai trả về nội dung của tệp nhị phân dưới dạng danh sách. Ví dụ cuối cùng cũng trả về nội dung của tệp nhị phân dưới dạng danh sách

Làm cách nào để chuyển đổi tệp nhị phân thành ASCII trong Python?

Hàm b2a_uu() được sử dụng để chuyển đổi chuỗi nhị phân đã chỉ định thành chuỗi ASCII tương ứng. .
cú pháp. b2a_uu(Văn bản)
Tham số. Hàm này chấp nhận một tham số duy nhất được minh họa bên dưới
Giá trị trả về. Hàm này trả về mã ASCII tương đương

Làm cách nào để chuyển đổi tệp nhị phân sang ASCII?

Đây là một cách để chuyển đổi các số nhị phân thành các ký tự ASCII thường đủ đơn giản để bạn thực hiện trong đầu. .
1 - Chuyển đổi cứ sau 4 chữ số nhị phân thành một chữ số hex. .
2 - Tách chuỗi chữ số hex thành từng cặp. .
3 - Chuyển đổi từng cặp chữ số hex thành số thập phân. .
4 - Chuyển đổi số thập phân thành ký tự ASCII

Làm cách nào để chuyển đổi nhị phân thành ký tự trong Python?

Phương pháp #1. Dữ liệu nhị phân được chia thành các bộ 7 bit vì bộ nhị phân này làm đầu vào, trả về giá trị thập phân tương ứng là mã ASCII của ký tự của một chuỗi. Mã ASCII này sau đó được chuyển đổi thành chuỗi bằng hàm chr() .

Làm cách nào để đọc tệp hình ảnh nhị phân trong Python?

Tệp nhị phân có thể bao gồm từ tệp hình ảnh như JPEG hoặc GIF, tệp âm thanh như MP3 hoặc định dạng tài liệu nhị phân như Word hoặc PDF. Trong Python, các tệp được mở ở chế độ văn bản theo mặc định. Để mở tệp ở chế độ nhị phân, khi chỉ định một chế độ, hãy thêm 'b' vào đó .