gpt4 book ai didi

python - 在 Python 中从二进制文件中读取整数

转载 作者:IT老高 更新时间:2023-10-28 21:37:24 25 4
gpt4 key购买 nike

我正在尝试阅读 BMP Python 中的文件。我知道前两个字节表示 BMP 公司。接下来的 4 个字节是文件大小。当我执行时:

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

我明白了:

ValueError: invalid literal for int() with base 10: 'F#\x13'

我想要做的是将这四个字节作为整数读取,但似乎 Python 正在将它们作为字符读取并返回一个字符串,该字符串无法转换为整数。我怎样才能正确地做到这一点?

最佳答案

read方法将字节序列作为字符串返回。要将字符串字节序列转换为二进制数据,请使用内置 struct模块:http://docs.python.org/library/struct.html .

import struct

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

请注意 unpack总是返回一个元组,所以 struct.unpack('i', fin.read(4))[0]给出你所追求的整数值。

您可能应该使用格式字符串 '<i' (< 是一个修饰符,表示 little-endian 字节顺序和标准大小和对齐方式 - 默认使用平台的字节顺序、大小和对齐方式)。根据 BMP 格式规范,字节应按 Intel/little-endian 字节顺序写入。

关于python - 在 Python 中从二进制文件中读取整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1163459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com