gpt4 book ai didi

Python f.read 没有读取正确的字节数

转载 作者:太空狗 更新时间:2023-10-30 02:44:27 24 4
gpt4 key购买 nike

我的代码应该读取 4 个字节,但有时只读取 3 个字节:

f = open('test.sgy', 'r+')
f.seek(99716)
AAA = f.read(4)
BBB = f.read(4)
CCC = f.read(4)
print len(AAA)
print len(BBB)
print len(CCC)

exit()

这个程序返回:4个3个4

我做错了什么?谢谢!

最佳答案

您假设 read 做了一些它没有做的事情。正如它的文档告诉您的那样:

read(...)
read([size]) -> read at most size bytes, returned as a string.

它读取最多 size 字节

如果您需要恰好 size 个字节,则必须创建一个包装函数。


这是一个您可以改编的(未经过全面测试的)示例:

def read_exactly( fd, size ):
data=""
remaining= size
while remaining>0: #or simply "while remaining", if you'd like
newdata= fd.read(remaining)
if len(newdata)==0: #problem
raise IOError("Failed to read enough data")
data+=newdata
remaining-= len(newdata)
return data

正如 Mark Dickinson 在评论中提到的,如果您使用的是 Windows,请确保您是 reading in binary mode - 否则您可能会读取错误的(二进制)数据。

关于Python f.read 没有读取正确的字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29393785/

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