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 .
file_handler.viết[ b "Chào mừng bạn đến với LinuxHint. \n Học 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ố .
numbers=[10,30,45,60,70,85,99]
# Convert the list to array
barray=bytearray[numbers]
# Write array into the file
file.ghi[ dãy ]
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ừ .
data_byte = file_handler.đọc[7]
in . "["Print three characters in each iteration:"]
# 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]
# . bin'
with open['string.bin', 'rb'] as fh:
nội dung = fh. đọc[]
in[ . ""Print the full content of the binary file:"]
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
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 .
number = list[file.đọc[5]] .
# Print the list
print[number]
# Close the file
file.đó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
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< .
# Declare numpy array
nparray = np.mảng[[34, . 89, 30, 45, 90, 11]]
# Create binary file from numpy array
nparray.để nộp["danh sách. bin"]
# 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
Sự 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