Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte

Tôi muốn đọc một byte tệp byte và kiểm tra xem bit cuối cùng của mỗi byte được đặt:

#!/usr/bin/python

def main():
    fh = open('/tmp/test.txt', 'rb')
    try:
        byte = fh.read(1)
        while byte != "":
            if (int(byte,16) & 0x01) is 0x01:
                print 1
            else:
                print 0
            byte = fh.read(1)
    finally:
        fh.close

    fh.close()

if __name__ == "__main__":
        main()

Lỗi tôi nhận được là:

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'

Có ai một ý tưởng? Tôi đã không thành công khi sử dụng các mô -đun Struct và Binascii.

Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte

Hỏi ngày 15 tháng 10 năm 2010 lúc 14:23Oct 15, 2010 at 14:23

1

Hãy thử sử dụng loại

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
9 (Python 2.6 trở lên), nó phù hợp hơn nhiều để xử lý dữ liệu byte. Khối
ba = bytearray(fh.read())
for byte in ba:
    print byte & 1
0 của bạn sẽ chỉ là:

ba = bytearray(fh.read())
for byte in ba:
    print byte & 1

hoặc để tạo danh sách kết quả:

low_bit_list = [byte & 1 for byte in bytearray(fh.read())]

Điều này hoạt động bởi vì khi bạn lập chỉ mục

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
9, bạn chỉ cần lấy lại số nguyên (0-255), trong khi nếu bạn chỉ đọc byte từ tệp bạn lấy lại một chuỗi ký tự duy nhất và vì vậy cần sử dụng
ba = bytearray(fh.read())
for byte in ba:
    print byte & 1
2 để chuyển đổi nó thành số nguyên.


Nếu tệp của bạn quá lớn để thoải mái giữ bộ nhớ (mặc dù tôi đoán nó không phải vậy) thì

ba = bytearray(fh.read())
for byte in ba:
    print byte & 1
3 có thể được sử dụng để tạo
Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
9 từ bộ đệm:

import mmap
m = mmap.mmap(fh.fileno(), 0, access=mmap.ACCESS_READ)
ba = bytearray(m)

Đã trả lời ngày 15 tháng 10 năm 2010 lúc 14:40Oct 15, 2010 at 14:40

Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte

Scott Griffithsscott GriffithsScott Griffiths

20,9k8 Huy hiệu vàng54 Huy hiệu bạc84 Huy hiệu đồng8 gold badges54 silver badges84 bronze badges

1

Bạn muốn sử dụng

ba = bytearray(fh.read())
for byte in ba:
    print byte & 1
2 thay vì
ba = bytearray(fh.read())
for byte in ba:
    print byte & 1
6:

if (ord(byte) & 0x01) == 0x01:

Đã trả lời ngày 15 tháng 10 năm 2010 lúc 14:27Oct 15, 2010 at 14:27

Nmichaelsnmichaelsnmichaels

48.2K12 Huy hiệu vàng102 Huy hiệu bạc133 Huy hiệu đồng12 gold badges102 silver badges133 bronze badges

2

Một chiều:

import array

filebytes= array.array('B')
filebytes.fromfile(open("/tmp/test.txt", "rb"))
if all(i & 1 for i in filebytes):
    # all file bytes are odd

Cách khác:

fobj= open("/tmp/test.txt", "rb")

try:
    import functools
except ImportError:
    bytereader= lambda: fobj.read(1)
else:
    bytereader= functools.partial(fobj.read, 1)

if all(ord(byte) & 1 for byte in iter(bytereader, '')):
    # all bytes are odd
fobj.close()

Đã trả lời ngày 15 tháng 10 năm 2010 lúc 19:22Oct 15, 2010 at 19:22

Tzottzottzot

89.2K29 Huy hiệu vàng137 Huy hiệu bạc201 Huy hiệu đồng29 gold badges137 silver badges201 bronze badges

Python là một trong những ngôn ngữ phổ biến nhất ở Hoa Kỳ. Tôi đã làm việc với Python trong một thời gian dài và tôi có chuyên môn trong việc làm việc với các thư viện khác nhau trên tkinter, pandas, numpy, rùa, django, matplotlib, tenorflow, scipy, scikit-learn, v.v. Ở các quốc gia như Hoa Kỳ, Canada, Vương quốc Anh, Úc, New Zealand, v.v. Hãy xem hồ sơ của tôi.how to read a binary file in python, and also we will cover these topics:

  • Làm cách nào để đọc toàn bộ tệp nhị phân trong Python?
  • Hàm Open () mở một tệp ở định dạng văn bản theo mặc định. Để mở một tệp ở định dạng nhị phân, thêm 'B' vào tham số chế độ. Do đó, chế độ "RB" mở tệp ở định dạng nhị phân để đọc, trong khi chế độ "WB" mở tệp ở định dạng nhị phân để viết.
  • Làm thế nào để bạn tạo một mảng byte trong Python?
  • Python đọc một tệp nhị phân để ASCII
  • Python đọc một tệp nhị phân vào một mảng numpy
  • Python là một trong những ngôn ngữ phổ biến nhất ở Hoa Kỳ. Tôi đã làm việc với Python trong một thời gian dài và tôi có chuyên môn trong việc làm việc với các thư viện khác nhau trên tkinter, pandas, numpy, rùa, django, matplotlib, tenorflow, scipy, scikit-learn, v.v. Ở các quốc gia như Hoa Kỳ, Canada, Vương quốc Anh, Úc, New Zealand, v.v. Hãy xem hồ sơ của tôi.

Làm cách nào để đọc toàn bộ tệp nhị phân trong Python? how to read a binary file in Python.

  • Hàm Open () mở một tệp ở định dạng văn bản theo mặc định. Để mở một tệp ở định dạng nhị phân, thêm 'B' vào tham số chế độ. Do đó, chế độ "RB" mở tệp ở định dạng nhị phân để đọc, trong khi chế độ "WB" mở tệp ở định dạng nhị phân để viết.file = open(“document.bin”,”wb”) and used the “wb” mode to write the binary file.
  • Làm thế nào để bạn tạo một mảng byte trong Python?document.bin is the name of the file.
  • String = "Python rất thú vị." # Chuỗi có mã hóa 'UTF-8' ARR = byteArray (Chuỗi, 'UTF-8') in (ARR) Chạy mã ..“This is good”, To decode the sentence, I have used sentence = bytearray(“This is good”.encode(“ascii”)).
  • Kích thước = 5. mảng = bytearray (kích thước) in (mảng) mã chạy ..file.write() method.
  • rlist = [1, 2, 3, 4, 5] mảng = bytearray (rlist) in (mảng) mã chạy ..write() is used to write the specified text to the file. And then to close the file, I have used the file.close().

Làm thế nào để bạn đọc byte trong Python?

file = open("document.bin","wb")
sentence = bytearray("This is good".encode("ascii"))
file.write(sentence)
file.close()
  • Sử dụng Open () và File.Read () để đọc byte từ tệp nhị phân.document.bin and used the “rb” mode to read the binary file.
  • File = Open ("Sample.bin", "RB").document.bin is the file name. And, I have using the read() method. The read() method returns the specified number of bytes from the file.

Byte = Tệp. Đọc (1).

file = open("document.bin","rb")
print(file.read(4))
file.close()

Trong khi byte: byte = false ở cuối tệp ..print(file.read(4)). Here, from the sentence, it will read only four words. As shown in the output.

Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte
tập tin. gần().

Làm cách nào để đọc một tệp nhị phân?

Python đọc một tệp nhị phân vào một mảng

Python đọc một tệp nhị phân vào một mảng bytehow to read a binary file to an array in Python.

  • Python đọc một dòng tệp nhị phân từng dòng array.bin and used the “wb” mode to write thebinary file. The array.bin is the name of the file.
  • Python đọc một tệp nhị phân để ASCII num=[2,4,6,8,10] to get the array in byte converted format, I have used bytearray(). The bytearray() method returns the byte array objects.
  • Python đọc một tệp nhị phân vào một mảng numpyfile.write(). And file.close() to close the file.

Ví dụ để viết một mảng vào tệp:

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
0
  • Để đọc mảng bằng văn bản từ tệp, tôi đã sử dụng cùng một tệp i.e, file = open (mảng mảng.bin, rb RB).file=open(“array.bin”,”rb”).
  • Chế độ RB RB được sử dụng để đọc mảng từ tệp.
  • Hàm danh sách () được sử dụng để tạo danh sách số đối tượng = list (file.read (3)). Tệp.read () được sử dụng để đọc các byte từ tệp. number=list(file.read(3)). The file.read() is used to read the bytes from the file.
  • Tệp.read (3) được sử dụng để đọc ba số từ mảng. Tệp.close () được sử dụng để đóng tệp.file.close() is used to close the file.

Ví dụ để đọc một mảng từ tệp:

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
1

Để có được đầu ra, tôi đã sử dụng in (số). Và để đóng tệp, tôi đã sử dụng file.close (). Trong ảnh chụp màn hình dưới đây, bạn có thể thấy đầu ra.print(number). And to close the file, I have used file.close(). In the below screenshot you can see the output.

Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte
Python đọc một tệp nhị phân vào một mảng
  • Cách chuyển đổi chuỗi python thành mảng byte với các ví dụ
  • Mảng python với các ví dụ
  • Tạo một mảng trống trong Python

Python đọc một tệp nhị phân vào một mảng byte

Bây giờ, chúng ta có thể thấy cách đọc một tệp nhị phân vào một mảng byte trong Python.how to read a binary file into a byte array in Python.

  • Trong ví dụ này, tôi đã mở một tệp có tên Sonu.Bin và Chế độ RB RB được sử dụng để đọc một tệp nhị phân và Sonu.bin là tên của tệp. Ở đây, tôi đã lưu trữ một số dữ liệu trong tệp sonu.bin.sonu.bin and “rb” mode is used to read a binary file, and sonu.bin is the name of the file. Here, I have stored some data in the sonu.bin file.
  • Byte = file.read (3) được sử dụng để đọc tệp và tệp.read (3) được sử dụng để chỉ đọc 3 byte từ tệp. byte = file.read(3) is used to read the file, and file.read(3) is used to read only 3 bytes from the file.
  • Vòng lặp trong khi được sử dụng để đọc và lặp lại tất cả các byte từ tệp.

Example:

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
2

Để đọc byte từ tệp, tôi đã sử dụng in (byte). Bạn có thể tham khảo ảnh chụp màn hình dưới đây cho đầu ra.print(byte). You can refer to the below screenshot for the output.

Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte
Python đọc một tệp nhị phân vào một mảng byte

Bây giờ, chúng ta có thể thấy cách đọc một tệp nhị phân vào một mảng byte trong Python.

Trong ví dụ này, tôi đã mở một tệp có tên Sonu.Bin và Chế độ RB RB được sử dụng để đọc một tệp nhị phân và Sonu.bin là tên của tệp. Ở đây, tôi đã lưu trữ một số dữ liệu trong tệp sonu.bin.how to read a binary file line by line in Python.

  • Byte = file.read (3) được sử dụng để đọc tệp và tệp.read (3) được sử dụng để chỉ đọc 3 byte từ tệp. lines=[“Welcome to python guides\n”] and open a file named as file=open(“document1.txt”,”wb”) document1.txt is the filename.
  • Vòng lặp trong khi được sử dụng để đọc và lặp lại tất cả các byte từ tệp. “wb” is the mode used to write the binary files. The file.writelines(lines) is used to write the lines from the file.
  • Để đọc byte từ tệp, tôi đã sử dụng in (byte). Bạn có thể tham khảo ảnh chụp màn hình dưới đây cho đầu ra. writelines() returns the sequence of string to the file. The file.close() method is used to close the file.

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

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
3
  • Ở đây, chúng ta có thể thấy cách đọc một dòng tệp nhị phân từng dòng trong Python.file=open(“document1.txt”,”rb”) to open the file, “rb” mode is used to read the binary file and, To read the line from the file I have used line=file.readline().
  • Trong ví dụ này, tôi đã lấy một dòng dưới dạng các dòng = [Chào mừng bạn đến với các hướng dẫn Python \ n,] và mở một tệp có tên là File = Open (Hồi Document1.txt,, WB WB))readline() returns one line from the file.

Các WB WB là chế độ được sử dụng để viết các tệp nhị phân. Tệp.Writelines (dòng) được sử dụng để viết các dòng từ tệp.

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
4

Các writeLines () trả về chuỗi chuỗi vào tệp. Phương thức file.close () được sử dụng để đóng tệp.print(line) is used and lastly to close the file, I have used file.close().

Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte
Bây giờ, chúng ta có thể thấy cách đọc một tệp nhị phân vào một mảng byte trong Python.

Trong ví dụ này, tôi đã mở một tệp có tên Sonu.Bin và Chế độ RB RB được sử dụng để đọc một tệp nhị phân và Sonu.bin là tên của tệp. Ở đây, tôi đã lưu trữ một số dữ liệu trong tệp sonu.bin.

Byte = file.read (3) được sử dụng để đọc tệp và tệp.read (3) được sử dụng để chỉ đọc 3 byte từ tệp.how to read a binary file to Ascii in Python.

  • Vòng lặp trong khi được sử dụng để đọc và lặp lại tất cả các byte từ tệp.test.bin using file = open(‘test.bin’, ‘wb’), The ‘wb’ mode is used to write the binary file and I have taken a variable as a sentence and assigned a sentence = ‘Hello Python’. To encode the sentence.
  • Để đọc byte từ tệp, tôi đã sử dụng in (byte). Bạn có thể tham khảo ảnh chụp màn hình dưới đây cho đầu ra.file_encode = sentence.encode(‘ASCII’). To write the encoded sentence in the file, I have used the file.write(file_encode).
  • Python đọc một dòng tệp nhị phân từng dòng file.seek() method returns the new position. To read the written file, I have used the file.read() which returns a byte from the file.
  • Ở đây, chúng ta có thể thấy cách đọc một dòng tệp nhị phân từng dòng trong Python. binary sentence into Ascii, I have used new_sentence = bdata. decode(‘ASCII’).

Example:

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
5

Trong ví dụ này, tôi đã lấy một dòng dưới dạng các dòng = [Chào mừng bạn đến với các hướng dẫn Python \ n,] và mở một tệp có tên là File = Open (Hồi Document1.txt,, WB WB))print(‘ASCII sentence’, new_sentence). You can refer to the below screenshot for the output.

Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte
Trong ví dụ này, tôi đã mở một tệp có tên Sonu.Bin và Chế độ RB RB được sử dụng để đọc một tệp nhị phân và Sonu.bin là tên của tệp. Ở đây, tôi đã lưu trữ một số dữ liệu trong tệp sonu.bin.

Byte = file.read (3) được sử dụng để đọc tệp và tệp.read (3) được sử dụng để chỉ đọc 3 byte từ tệp.

Vòng lặp trong khi được sử dụng để đọc và lặp lại tất cả các byte từ tệp.how to read a binary file into a numpy array in Python.

  • Để đọc byte từ tệp, tôi đã sử dụng in (byte). Bạn có thể tham khảo ảnh chụp màn hình dưới đây cho đầu ra.array = np.array([2,8,7]) is used to create an array, The .tofile is used to write all the array to the file. The array.bin is the name of the binary file.
  • Python đọc một dòng tệp nhị phân từng dòngnp.fromfile is used to construct an array from the data in the file. The dtype=np.int8 is the datatype object. The output of the array changes if we change np.int8 to int32 or int64.

Example:

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
6

Ở đây, chúng ta có thể thấy cách đọc một dòng tệp nhị phân từng dòng trong Python.print(np.fromfile(“array.bin”, dtype=np.int8)). The below screenshot shows the output.

Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte
Byte = file.read (3) được sử dụng để đọc tệp và tệp.read (3) được sử dụng để chỉ đọc 3 byte từ tệp.

Vòng lặp trong khi được sử dụng để đọc và lặp lại tất cả các byte từ tệp.

Để đọc byte từ tệp, tôi đã sử dụng in (byte). Bạn có thể tham khảo ảnh chụp màn hình dưới đây cho đầu ra.how to read binary file into csv in Python.

  • Python đọc một dòng tệp nhị phân từng dòngmodule called CSV. The CSV module is a comma-separated value module. It is used to read and write tabular data in CSV format.
  • Ở đây, chúng ta có thể thấy cách đọc một dòng tệp nhị phân từng dòng trong Python.lock.bin and “w” mode is used to write the file writer = csv.writer(f) is used to write the objects in the file. The lock.bin is the name of the file.
  • Trong ví dụ này, tôi đã lấy một dòng dưới dạng các dòng = [Chào mừng bạn đến với các hướng dẫn Python \ n,] và mở một tệp có tên là File = Open (Hồi Document1.txt,, WB WB))writer() returns the write object which converts data into a string.
  • Writer.Writerows được sử dụng để viết tất cả các hàng vào tệp. Để đóng tệp, f.close () được sử dụng.writer.writerows is used to write all the rows into the file. To close the file, f.close() is used.

Ví dụ để viết tệp CSV:

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
7

Để đọc tệp CSV, tôi đã mở tệp khóa.bin trong đó dữ liệu đã được viết, chế độ ‘R‘ được sử dụng để đọc tệp. Để đọc tệp CSV, tôi đã sử dụng Reader = csv.Reader (tệp) để trả lại danh sách các hàng từ tệp. CSV file, I have opened the file lock.bin in which data is already written, The ‘r‘ mode is used to read the file. To read the CSV file, I have used reader = csv.reader(file) to return a list of rows from the file.

Ví dụ để đọc tệp CSV:

Traceback (most recent call last):
  File "./mini_01.py", line 21, in <module>
    main()
  File "./mini_01.py", line 10, in main
    if (int(byte,16) & 0x01) is 0x01:
ValueError: invalid literal for int() with base 16: '\xaf'
8

Để có được đầu ra, tôi đã sử dụng in (hàng). Ảnh chụp màn hình dưới đây cho thấy đầu ra. print(row). The below screenshot shows the output.

Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte
Python đọc một tệp nhị phân vào CSV

Bạn có thể thích các hướng dẫn Python sau:

  • Cách vẽ một hình dạng trong Python bằng rùa
  • Python yêu cầu đầu vào của người dùng (ví dụ)
  • Cách chuyển đổi chuỗi python thành mảng byte với các ví dụ
  • Python vượt qua bằng cách tham chiếu hoặc giá trị với các ví dụ
  • Python Chọn từ danh sách + ví dụ
  • Liên minh các bộ Python + ví dụ
  • Giới thiệu về Giao diện Python
  • Cách chuyển đổi chuỗi thành DateTime trong Python
  • Danh sách Python Hiểu bằng cách sử dụng IF-Else

Trong hướng dẫn này, chúng tôi đã tìm hiểu về & nbsp; Python đọc một tệp nhị phân, & nbsp; chúng tôi cũng đã đề cập đến các chủ đề này: Python read a binary file, also we have covered these topics:

  • Python đọc một tệp nhị phân vào một mảng
  • Python đọc một tệp nhị phân vào một mảng byte
  • Python đọc một dòng tệp nhị phân từng dòng
  • Python đọc một tệp nhị phân để ASCII
  • Python đọc một tệp nhị phân vào một mảng numpy
  • Python đọc một tệp nhị phân vào CSV

Hướng dẫn python read binary file into byte array - python đọc tệp nhị phân thành mảng byte

Bạn có thể thích các hướng dẫn Python sau:

Đối với các tệp nhị phân lớn, bạn có thể sử dụng phương thức đọc của đối tượng FileStream để đọc từ tệp chỉ một số lượng được chỉ định tại một thời điểm ..

Đối với các tệp nhị phân lớn, bạn có thể sử dụng phương thức đọc của đối tượng FileStream để đọc từ tệp chỉ một số lượng được chỉ định tại một thời điểm ..add 'b' to the mode parameter. Hence the "rb" mode opens the file in binary format for reading, while the "wb" mode opens the file in binary format for writing.

Hàm Open () mở một tệp ở định dạng văn bản theo mặc định. Để mở một tệp ở định dạng nhị phân, thêm 'B' vào tham số chế độ. Do đó, chế độ "RB" mở tệp ở định dạng nhị phân để đọc, trong khi chế độ "WB" mở tệp ở định dạng nhị phân để viết.

Làm thế nào để bạn tạo một mảng byte trong Python?
Kích thước = 5. mảng = bytearray (kích thước) in (mảng) mã chạy ..
rlist = [1, 2, 3, 4, 5] mảng = bytearray (rlist) in (mảng) mã chạy ..

Làm thế nào để bạn đọc byte trong Python?

Sử dụng Open () và File.Read () để đọc byte từ tệp nhị phân..
File = Open ("Sample.bin", "RB").
Byte = Tệp.Đọc (1).
Trong khi byte: byte = false ở cuối tệp ..
print(byte).
Byte = Tệp.Đọc (1).
Trong khi byte: byte = false ở cuối tệp ..

tập tin.gần().

Làm cách nào để đọc một tệp nhị phân?.
Để đọc từ một tập tin nhị phân.
Sử dụng phương thức ReadallBytes, trả về nội dung của tệp dưới dạng mảng byte.Ví dụ này đọc từ tệp c:/tài liệu và cài đặt/selfportrait.....