Hướng dẫn python read 32 bit integer from file - python đọc số nguyên 32 bit từ tệp

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ạc22 Huy hiệu đồng3 gold badges10 silver badges22 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 [

Bài Viết Liên Quan

Chủ Đề