我已经读过the documentation,但是readlines(n)有什么作用?用readlines(n)表示readlines(3)或任何其他数字。

当我运行readlines(3)时,它返回的内容与readlines()相同。

最佳答案

可选参数应表示从文件中读取了多少个(大约)字节。该文件将被进一步读取,直到当前行结束:

readlines([size]) -> list of strings, each a line from the file.

Call readline() repeatedly and return a list of the lines so read.
The optional size argument, if given, is an approximate bound on the
total number of bytes in the lines returned.

另一句名言:



您是对的,它似乎对小型文件没有太大作用,这很有趣:
In [1]: open('hello').readlines()
Out[1]: ['Hello\n', 'there\n', '!\n']

In [2]: open('hello').readlines(2)
Out[2]: ['Hello\n', 'there\n', '!\n']

可能有人认为它是由文档中的以下短语解释的:



但是,即使我尝试在不使用缓冲区的情况下读取文件,它似乎也没有任何改变,这意味着要使用其他类型的内部缓冲区:
In [4]: open('hello', 'r', 0).readlines(2)
Out[4]: ['Hello\n', 'there\n', '!\n']

在我的系统上,此内部缓冲区大小似乎约为5k字节/1.7k行:
In [1]: len(open('hello', 'r', 0).readlines(5))
Out[1]: 1756

In [2]: len(open('hello', 'r', 0).readlines())
Out[2]: 28080

关于Python的函数readlines(n)行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14541010/

10-12 21:47