gpt4 book ai didi

python - 使用python3读取二进制文件

转载 作者:行者123 更新时间:2023-11-28 22:11:11 26 4
gpt4 key购买 nike

我试图在 python3 中读取一个 16 位二进制文​​件,但出现以下错误

out = struct.unpack("h", bytes)
error: unpack requires a buffer of 2 bytes

import struct
for line in file_read:
bytes = file_read.read(2)
out = struct.unpack("h", bytes)
file_write.write(str(out))

任何关于我可能出错的地方的建议将不胜感激..

最佳答案

您正在按行和按字节字符遍历文件。

for line in file_read:  # read by line
bytes = file_read.read(2) # read by character

第一个寻找换行符(b'\n' 又名 b'\x0A')并且可能消耗任意数量的字节。这意味着您读取的字节对可能会偏移 1,并且可能在文件末尾。

仅通过字符对读取您的文件。您可以使用 two-argument iterfor 循环中方便地执行此操作:

for pair in iter(lambda: file_read.read(2), b''):
out = struct.unpack("h", pair)
file_write.write(str(out))

在 Python 3.8 中,您可以使用 assignment expression还有:

while pair := file_read.read(2):
out = struct.unpack("h", pair)
file_write.write(str(out))

关于python - 使用python3读取二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56027714/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com