Hướng dẫn how do i import binary into python? - làm cách nào để nhập nhị phân vào python?

Tôi cũng thấy Python thiếu khi đọc và viết các tệp nhị phân, vì vậy tôi đã viết một mô -đun nhỏ (cho Python 3.6+).

Với BinaryFile, bạn sẽ làm điều gì đó như thế này (tôi đoán, vì tôi không biết Fortran):

import binaryfile

def particle_file(f):
    f.array('group_ids')  # Declare group_ids to be an array (so we can use it in a loop)
    f.skip(4)  # Bytes 1-4
    num_particles = f.count('num_particles', 'group_ids', 4)  # Bytes 5-8
    f.int('num_groups', 4)  # Bytes 9-12
    f.skip(8)  # Bytes 13-20
    for i in range(num_particles):
        f.struct('group_ids', '>f')  # 4 bytes x num_particles
    f.skip(4)

with open('myfile.bin', 'rb') as fh:
    result = binaryfile.read(fh, particle_file)
print(result)

Trong đó tạo ra một đầu ra như thế này:

{
    'group_ids': [(1.0,), (0.0,), (2.0,), (0.0,), (1.0,)],
    '__skipped': [b'\x00\x00\x00\x08', b'\x00\x00\x00\x08\x00\x00\x00\x14', b'\x00\x00\x00\x14'],
    'num_particles': 5,
    'num_groups': 3
}

Tôi đã sử dụng Skip () để bỏ qua dữ liệu bổ sung Fortran cho biết thêm, nhưng bạn có thể muốn thêm một tiện ích để xử lý các bản ghi Fortran đúng cách thay thế. Nếu bạn làm như vậy, một yêu cầu kéo sẽ được chào đón.

Tệp chứa dữ liệu nhị phân được gọi là tệp nhị phân. Bất kỳ dữ liệu nhị phân được định dạng hoặc không định dạng được lưu trữ trong tệp nhị phân và tệp này không thể đọc được và được sử dụng trực tiếp bởi máy tính. & NBSP; Khi một 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 tệp được chuyển đổi hoặc mã hóa thành định dạng có thể đọc được của con người. Phần mở rộng của tệp nhị phân là .Bin. Nội dung của tệp nhị phân có thể được đọc bằng cách sử dụng hàm hoặc mô-đun tích hợp. Các cách khác nhau để đọc các tệp nhị phân trong Python đã được hiển thị trong hướng dẫn này.

Pre-requisite:

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 ví dụ. Kịch bản của hai tệp Python đã được đưa ra dưới đây để tạo hai tệp nhị phân. Binary1.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à Binary2.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ố. string.bin that will contain string data, and the binary2.py will create a binary file named number_list.bin that will contain a list of numeric data.

Binary1.py

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

File_Handler = Open ("String.bin", "WB")= open("string.bin", "wb")

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

File_Handler.Write (B "Chào mừng bạn đến với Linuxhint. \ Nlearn Python Lập trình.")write(b"Welcome to LinuxHint.\nLearn Python Programming.")

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

file_handler.close ()close()

Binary2.py

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

file=open("number_list.bin","wb")=open("number_list.bin","wb")

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

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

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

Barray = bytearray (số)=bytearray(numbers)

# Viết mảng vào tệp

file.write(barray).write(barray)

file.close().close()

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 nội dung đầy đủ của tệp nhị phân tại một thời điểm. Tạo một tệp Python với tập lệnh sau. Hàm Open () đã được sử dụng để mở chuỗi.bin để đọc. Hàm đọc () đã được sử dụng để đọc 7 ký tự từ tệp trong mỗi lần lặp trong khi vòng lặp 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.open() function has used to open the string.bin for reading. The read() function has been used to read 7 characters from the file in each iteration of while loop and print. Next, the read() function has been used without any argument to read the full content of the binary file that will be printed later.

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

File_Handler = Open ("String.bin", "RB")= open("string.bin", "rb")

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

data_byte = file_handler.read (7)= file_handler.read(7)

In ("In ba ký tự trong mỗi lần lặp:")("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

Trong khi data_byte: data_byte:

& nbsp; & nbsp; in (data_byte)print(data_byte)

& nbsp; & nbsp; data_byte = file_handler.read (7)= file_handler.read(7)

# Đọc toàn bộ tệp dưới dạng chuỗi byte duy nhất

withopen ('string.bin', 'rb') dưới dạng fh: open('string.bin', 'rb') as fh:

& nbsp; & nbsp; nội dung = fh.read ()= fh.read()

In ("In toàn bộ nội dung của tệp nhị phân:")("Print the full content of the binary file:")

print(content)(content)

Output:

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trên.

Hướng dẫn how do i import binary into python? - làm cách nào để nhập nhị phân vào python?

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

Tạo một tệp python với tập lệnh sau để đọc một tệp nhị phân có tên number_list.bin đã tạo trước đó. Tệp nhị phân này chứa một danh sách các 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à được chuyển đổi thành một danh sách trước khi in.number_list.bin created previously. This binary file contains a list of numeric data. Like the previous example, the open() function has used open the binary file for reading in the script. Next, the first 5 numbers will be read from the binary file and converted into a list before printing.

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

file=open("number_list.bin","rb") = open("number_list.bin", "rb")

File_Handler = Open ("String.bin", "RB")

# Đọc ba byte đầu tiên từ tệp nhị phân= list(file.read(5))

data_byte = file_handler.read (7)

print(number)(number)

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

file.close().close()

Output:

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

Hướng dẫn how do i import binary into python? - làm cách nào để nhập nhị phân vào python?

Trong khi data_byte:

& nbsp; & nbsp; in (data_byte)NumPy array and read the content of the binary file using into a list by using the NumPy module have shown in this part of the tutorial. Before checking the script given below, you have to install the NumPy module by executing the command from the terminal or installing the NumPy package in the Python editor, where the script will be executed. The tofile() function is used to create a text or binary file, and the fromfile() function is used to create an array by reading a text or binary file.

& nbsp; & nbsp; data_byte = file_handler.read (7)

# Đọc toàn bộ tệp dưới dạng chuỗi byte duy nhấttofile(file, sep='', format='%s')

withopen ('string.bin', 'rb') dưới dạng fh:

& nbsp; & nbsp; nội dung = fh.read ()

In ("In toàn bộ nội dung của tệp nhị phân:")fromfile(file, dtype=float, count=- 1, sep='', offset=0, *, like=None)

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trên.dtype defines the data type of the returned array. The count is used to count the number of items. The purpose of the sep is to separate the text or array items. The offset is used to define the current position of the file. The last argument is used to create an array object that not a NumPy array.

Ví dụ-2: Đọc tệp nhị phân của dữ liệu chuỗi vào mảngNumPy array and read and print the content of the binary file.

Tạo một tệp python với tập lệnh sau để đọc một tệp nhị phân có tên number_list.bin đã tạo trước đó. Tệp nhị phân này chứa một danh sách các 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à được chuyển đổi thành một danh sách trước khi in.

# Đọc năm số đầu tiên vào danh sách numpy as np

number = list (file.read (5))

# In danh sách= np.array([34, 89, 30, 45, 90, 11])

# Đóng tệp

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trên. Tệp nhị phân chứa 7 số và năm số đầu tiên đã được in trong đầu ra.tofile("list.bin")

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 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 đã hiển thị trong phần này của hướng dẫn. Trước khi kiểm tra tập lệnh được đưa ra 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 một tệp văn bản hoặc tệp nhị phân và hàm từ fromfile () được sử dụng để tạo một mảng bằng cách đọc một tệp văn bản hoặc tệp nhị phân.(np.fromfile("list.bin",  dtype=np.int64))

Output:

Đầu ra sau sẽ xuất hiện sau khi thực thi tập lệnh trên.

Hướng dẫn how do i import binary into python? - làm cách nào để nhập nhị phân vào python?

Conclusion:

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

Thông tin về các Tác giả

Hướng dẫn how do i import binary into python? - làm cách nào để nhập nhị phân vào python?

Tôi là một huấn luyện viên của các khóa học lập trình web. Tôi thích viết bài báo hoặc hướng dẫn về các chủ đề CNTT khác nhau. Tôi có một kênh YouTube trong đó nhiều loại hướng dẫn dựa trên Ubuntu, Windows, Word, Excel, WordPress, Magento, Laravel, v.v.

Python có thể xử lý các tệp nhị phân không?

Khoa học dữ liệu thực tế bằng cách sử dụng pythonopens một tệp để chỉ đọc ở định dạng nhị phân. Con trỏ tệp được đặt ở đầu tệp. Đây là chế độ mặc định.using Python Opens a file for reading only in binary format. The file pointer is placed at the beginning of the file. This is the default mode.

Làm thế nào để Python đọc dữ liệu nhị phân?

Để đọc từ một tệp nhị phân, chúng ta cần mở nó bằng chế độ RB thay vì chế độ mặc định của RT: >>> với Open ("Bài tập. Zip", Mode = "RB") là Zip_File: ... Nội dung = Nội dung =zip_file.đọc() ...open it with the mode rb instead of the default mode of rt : >>> with open("exercises. zip", mode="rb") as zip_file: ... contents = zip_file. read() ...

Tệp nhị phân trong Python là gì?

Một tệp nhị phân là một tệp có nội dung ở định dạng nhị phân bao gồm một loạt các byte tuần tự, mỗi loại có chiều dài tám bit.Nội dung phải được giải thích bởi một chương trình hoặc bộ xử lý phần cứng hiểu trước chính xác cách nội dung đó được định dạng và cách đọc dữ liệu.a file whose content is in a binary format consisting of a series of sequential bytes, each of which is eight bits in length. The content must be interpreted by a program or a hardware processor that understands in advance exactly how that content is formatted and how to read the data.

Có một loại nhị phân trong Python?

Trong Python, loại dữ liệu Boolean là biến nhị phân và được định nghĩa là t r u e hoặc f a l s e.Ngoài ra, hàm bool () chuyển đổi giá trị của một đối tượng thành giá trị boolean.Hàm này trả về t r u e cho tất cả các giá trị ngoại trừ các giá trị sau: các đối tượng trống (danh sách, tuple, chuỗi, từ điển)the boolean data type is the binary variable and defined as T r u e or F a l s e . Additionally, the bool() function converts the value of an object to a boolean value. This function returns T r u e for all values except the following values: Empty objects (list, tuple, string, dictionary)