MST

星途 面试题库

面试题:Python二进制文件读写的数据处理

假设你有一个包含一系列整数(每个整数占4个字节,以小端字节序存储)的二进制文件,编写Python代码读取该文件,将每个整数转换为十进制数,并计算这些整数的总和。要求代码能够处理文件末尾可能不完整的整数情况。
46.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
def sum_integers_from_binary_file(file_path):
    total = 0
    with open(file_path, 'rb') as f:
        data = f.read()
        num_full_integers = len(data) // 4
        for i in range(num_full_integers):
            int_bytes = data[i * 4: (i + 1) * 4]
            num = int.from_bytes(int_bytes, byteorder='little')
            total += num
        remaining_bytes = len(data) % 4
        if remaining_bytes > 0:
            padded_bytes = data[-remaining_bytes:] + b'\x00' * (4 - remaining_bytes)
            num = int.from_bytes(padded_bytes, byteorder='little')
            total += num
    return total


# 示例调用
file_path = 'your_binary_file.bin'
result = sum_integers_from_binary_file(file_path)
print(f"这些整数的总和为: {result}")