Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:将二进制文件作为整数读入缓冲区,然后切片_Python_Binary_Integer_Slice - Fatal编程技术网

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

Python:将二进制文件作为整数读入缓冲区,然后切片,python,binary,integer,slice,Python,Binary,Integer,Slice,在python中,如何将二进制文件加载到缓冲区中,然后将单个字节作为数字而不是字符串读取 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 可选缓冲参数如下所述: 缓冲是用于设置缓冲策略的可选整数。 传递0以关闭缓冲(仅在

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

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
可选缓冲参数如下所述:

缓冲是用于设置缓冲策略的可选整数。 传递0以关闭缓冲(仅在二进制模式下允许),传递1至 选择行缓冲(仅在文本模式下可用),然后选择一个大于1的整数 指示固定大小区块缓冲区的大小。当没有缓冲时 参数,则默认缓冲策略的工作方式如下:

•二进制文件缓冲在固定大小的块中;大小 缓冲区是使用一种启发式方法来选择的,试图确定底层 设备的“块大小”和默认缓冲区大小。在许多 在系统中,缓冲区通常为4096或8192字节长

如果你真的很想并且计划好操纵它们,你可以把每一行都转换成一行

要回答您的评论,这将演示如何筛选出您迭代的字符:

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)
使用如下文件:

"abcde"
产生

>>> 
97
98
99
100
101
可选缓冲参数如下所述:

缓冲是用于设置缓冲策略的可选整数。 传递0以关闭缓冲(仅在二进制模式下允许),传递1至 选择行缓冲(仅在文本模式下可用),然后选择一个大于1的整数 指示固定大小区块缓冲区的大小。当没有缓冲时 参数,则默认缓冲策略的工作方式如下:

•二进制文件缓冲在固定大小的块中;大小 缓冲区是使用一种启发式方法来选择的,试图确定底层 设备的“块大小”和默认缓冲区大小。在许多 在系统中,缓冲区通常为4096或8192字节长

如果你真的很想并且计划好操纵它们,你可以把每一行都转换成一行

要回答您的评论,这将演示如何筛选出您迭代的字符:

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)

我意识到我最初的问题不是很清楚,我仍然遗漏了一些东西。我知道如何打印整个文件,如下面的HennyH示例所示,但如果我只想打印字节5呢?或者我想打印663到765之间的所有字节?请查看我的更新答案@SixteenOrNumber我意识到我最初的问题不是那么清楚,我仍然遗漏了一些东西。我知道如何打印整个文件,如下面的HennyH示例所示,但如果我只想打印字节5呢?或者我想打印663到765之间的所有字节?请查看我的更新答案@sixteenornumber