使用Python的fileinput模块读取多个二进制文件的单字节

5 投票
1 回答
1645 浏览
提问于 2025-04-17 22:59

我可以这样读取一个二进制文件的第一个字节:

with open(my_binary_file,'rb') as f:
    f.read(1)

但是我该如何使用fileinput模块来做到这一点呢?如果我运行以下代码:

import fileinput
with fileinput.FileInput(my_binary_file,'rb') as f:
    f.read(1)

我就会收到这个错误:

AttributeError: 'FileInput' object has no attribute 'read'

有没有类似于fileinput的模块,可以让我读取多个二进制文件的字节或字符,而不是逐行读取呢?

补充说明:逐行读取二进制文件并循环处理是不行的,因为这个二进制文件很大,而且里面没有换行符。

1 个回答

2

这不是我最开始想要的解决办法,但这是我最终得到的结果:

def process_binary_files(list_of_binary_files):

    for file in list_of_binary_files:
        with open(file,'rb') as f:
            yield f.read(1)

    return

list_of_binary_files = ['f1', 'f2']
generate_byte = process_binary_files(list_of_binary_files)
byte = next(generate_byte)

撰写回答