Python:将二进制文件读入缓冲区作为整数然后切片

时间:2013-05-02 09:20:54

标签: python binary integer slice

在python中,如何将二进制文件加载到缓冲区中,然后将单个字节读取为数字而不是字符串。?

1 个答案:

答案 0 :(得分:3)

with open('binary.txt',"rb",buffering=-1) as f:
    for line in f:
        for c in line:
            print(c)

使用如下文件:

"abcde"

可生产

>>> 
97
98
99
100
101

此处描述了可选的缓冲参数:

  

buffering是一个可选的整数,用于设置缓冲策略。   传递0以切换缓冲关闭(仅允许在二进制模式下),1到   选择行缓冲(仅在文本模式下可用)和整数> 1   指示固定大小的块缓冲区的大小。什么时候没有缓冲   给出了参数,默认缓冲策略的工作方式如下:

     

•二进制文件以固定大小的块缓冲;的大小   使用启发式试图确定底层的缓冲区   设备的“块大小”并回退到DEFAULT_BUFFER_SIZE。很多   系统,缓冲区通常为4096或8192字节长。

Python io.open

如果你非常热衷于计划操作它们,你可以将每一行转换为bytearray

line = bytearray(line)

要回答您的评论,这演示了如何过滤掉您迭代的字符:

with open('binary.txt',"rb",buffering=-1) as f:
    for line in f:
        for c in [b for b in line if b in range(663,765)]: #in a certain range
            print(c)
        for c in [b for b in line if b == 5]: #is a certain number
            print(c)