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

时间:2014-03-19 15:09:35

标签: python file-io python-3.x binaryfiles

我可以读取二进制文件的第一个字节,如下所示:

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 个答案:

答案 0 :(得分: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)