我正在尝试读取 bmp 文件。我在读取的字节上得到了不同的符号。我想了解为什么“读取”方法会这样。
为此: - 我以二进制读取模式打开文件。- 我创建了一个空列表。- 我逐字节阅读二进制文件。- 每次读取一个字节时,我都会将其加载到列表中。
为什么它有时以某种方式行事而其他人以不同方式行事?为什么它不总是返回一个十六进制?
定义主():
fichero = open("C:\\Users\\gsanmar\\Pictures\\astilleros-ferrol.bmp", "rb")
bytesDelFichero = []
for i in range(0,70):
bytesDelFichero.append(fichero.read(1))
for valor in bytesDelFichero:
print(valor)
主要的()
实际结果是:
b'B' b'M' b'\xf6' b'i' b'0' b'\x00' b'\x00' b'\x00' b'\x00' b'\x00' b'6' b'\x00' b'\x00' b'\x00' b'(' b'\x00' b'\x00' b'\x00' b'@' b'\x06' b'\x00' b' \x00' b'\x95' b'\x02' ...
这就是字节的打印方式 - 如果它们是可打印的字符(字母、数字...),您将在输出中看到它们而不是十六进制代码。
如果您想要到处都是十六进制代码,请执行以下操作:
for valor in bytesDelFichero:
print(hex(int(valor)))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句