[英]Python: reading and printing a binary file
我有一个二进制文件,我想一次读取一个字节的数据,并在运行时打印每个字节。
到目前为止,我的代码是:
f = open("test.dat", "rb")
try:
byte = f.read(1)
while byte != "":
print byte
raw_input("Press Enter to continue...")
byte = f.read(1)
finally:
f.close()
但是,这并没有给我预期的结果。 基本上,我想为每个字节打印一个介于0和127之间的数字。 但是,第一张印刷品给我一个笑脸符号,我知道它不在ASCII的前128个条目之内。 因此,即使我仅指定读取f.read中的1个字节,似乎我打印的不仅仅是一个字节。
这里发生了什么?
谢谢。
笑脸是Windows代码页850的字符1(白脸)或2(黑脸),因此一切正常。
如果要打印号码,请使用
print ord(byte)
read(1)
返回的是一个单字符字符串。 尝试:
print ord(byte[0])
或者也可以
print ord(byte)
因为Python没有单独的字符类型,而ord()
可用于单字符字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.