Skip to main content
 首页 » 编程设计

Python:读取和打印二进制文件

2025年05月04日11webabcd

我有一个二进制文件,我想读取数据,一次一个字节,在运行时打印每个字节。

我目前的代码是:

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 codepage-850的字符1(白脸)或2(黑脸),这样就OK了。

如果你想打印数字,就用

print ord(byte)