我正在尝试读取bmp文件。 我对读取的字节有不同的表示法。 我想了解为什么“读取”方法会以这种方式起作用。
为此: -我以二进制读取模式打开文件。 -我创建一个空列表。 -我通过二进制文件逐字节读取它。 -每次读取字节时,都会将其加载到列表中。
为什么有时以某种方式行事,而另一些则以不同的方式行事? 为什么它不总是返回十六进制?
def main():
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)
main()
实际结果是:
b'B' b'M' b'\ xf6' 双' 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' ...
答案 0 :(得分:2)
这就是字节的打印方式-如果字节是可打印的字符(字母,数字...),您将在输出中看到它们,而不是十六进制代码。
如果您想在各处使用十六进制代码,请执行以下操作:
for valor in bytesDelFichero:
print(hex(int(valor)))