我读了一个文件并在readline()
之后调用read()
,但是read()
函数不返回其余内容。在
我想读一个名为'测试.txt'使用编解码器。 内容如下:
1572278
#*OQL[C++]: Extending C++ with an Object Query Capability.
#@José A. Blakeley
#year1995
我使用的代码是:
^{pr2}$当我运行它时,我得到的是:
b:1572278
c:#*OQL[C++]: Extending C++ with an Object Query Capability.\r\n#@J
这里,c
不是整个文件的其余部分-我无法理解。在
read()
调用似乎为我获取了文件的其余部分。也许你没有正确地输出读过的内容,但是我不能告诉你,因为你的问题中没有包含这样做的代码。在BTW,不需要像使用C和C++代码那样用分号结束Python代码行。在
输出:
^{pr2}$编辑:我明白了。在
这个对你有用吗?在
这是因为
StreamReaderWriter
的工作方式。当您执行readline()
时,它将填充一个linebuffer
,当您调用read()
,读取codecs.py
代码时,它将以快捷方式返回缓冲区中的任何内容,除非您指定一个对输入文件有效的size
。在如果要使用
os.path.getsize
作为read()
的提示:因为您正在slurp文件;您可以先这样做,然后在顶部使用
^{pr2}$StringIO
。在另一个简单的解决方案是调用
read()
两次,一次获取缓冲输出,另一次调用slurp其余的输出。在相关问题 更多 >
编程相关推荐