Hướng dẫn read 4 bytes from file python - đọc 4 byte từ tệp python

Tôi đang cố đọc một tệp BMP trong Python. Tôi biết hai byte đầu tiên chỉ ra công ty BMP. 4 byte tiếp theo là kích thước tệp. Khi tôi thực hiện:

fin = open("hi.bmp", "rb") firm = fin.read(2) file_size = int(fin.read(4))

Tôi có:

ValueError: chữ không hợp lệ cho int () với cơ sở 10: 'f#\ x13'

Những gì tôi muốn làm là đọc bốn byte đó như một số nguyên, nhưng có vẻ như Python đang đọc chúng dưới dạng ký tự và trả lại một chuỗi, không thể chuyển đổi thành một số nguyên. Làm thế nào tôi có thể làm điều này một cách chính xác?

Lucas w

8923 Huy hiệu vàng10 Huy hiệu bạc23 Huy hiệu đồng3 gold badges10 silver badges23 bronze badges

Đã hỏi ngày 22 tháng 7 năm 2009 lúc 6:48Jul 22, 2009 at 6:48

MANUEL ARAOZMANUEL ARAOManuel Araoz

15.7K22 Huy hiệu vàng70 Huy hiệu bạc94 Huy hiệu đồng22 gold badges70 silver badges94 bronze badges

2

Phương thức import struct print(struct.unpack('i', fin.read(4))) 0 trả về một chuỗi byte dưới dạng chuỗi. Để chuyển đổi từ chuỗi byte chuỗi thành dữ liệu nhị phân, hãy sử dụng mô-đun import struct print(struct.unpack('i', fin.read(4))) 1 tích hợp: //docs.python.org/l Library/struct.html.

import struct print(struct.unpack('i', fin.read(4)))

Lưu ý rằng import struct print(struct.unpack('i', fin.read(4))) 2 luôn trả về một tuple, do đó import struct print(struct.unpack('i', fin.read(4))) 3 mang lại giá trị số nguyên mà bạn đang theo sau.

Bạn có thể nên sử dụng chuỗi định dạng import struct print(struct.unpack('i', fin.read(4))) 4 (

Chủ đề