相关疑难解决方法(0)

Python使用read停止读取文件

我正在尝试读取二进制文件,结果令人困惑.

f = open('foo.dat','r')

data = f.read()

print len(data), f.tell()
Run Code Online (Sandbox Code Playgroud)

输出是:

61, 600
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?只读取前61个字节,但文件对象告诉我我在文件的末尾(文件长度为600字节).文件的其余部分发生了什么?

我只是尝试在Matlab中阅读它并且它读得很好所以我很确定数据文件没问题.

该文档提到了阻塞的一些内容:"请注意,在非阻塞模式下,即使没有给出大小参数,也可能返回的数据少于请求的数据." 我是否处于非阻塞模式?这似乎对文件无关紧要.如何切换到阻止模式?

更新 @John Machin - 是的!谢谢!看起来确实是这样.这是输出:

600, 600
'm\x1aN\x16\x8d\x1e\x96\x10h\x1a'
Run Code Online (Sandbox Code Playgroud)

'\ x1a'肯定在那里.

python

3
推荐指数
1
解决办法
3215
查看次数

标签 统计

python ×1