当前位置: 首页 > 面试题库 >

Python函数readlines(n)行为

冉高寒
2023-03-14
问题内容

我已经阅读 了文档 ,但是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 html" target="_blank">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.

另一句话:

如果给定了可选参数 sizehint ,它将从文件中读取那么多字节,并读取更多字节以完成一行,然后从该行返回行。

您是对的,它似乎对小型文件没有太大作用,这很有趣:

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']

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

使用readline()读取直到EOF,并返回包含由此读取的行的列表。如果存在可选的sizehint参数,则读取的总行数大约为sizehint字节
(可能在四舍五入为内部缓冲区大小之后) ,而不是读取EOF
。如果无法实现或无法有效实现,则实现类似文件的接口的对象可以选择忽略sizehint。

但是,即使我尝试在不使用缓冲区的情况下读取文件,它似乎也没有任何改变,这意味着要使用其他类型的内部缓冲区:

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 readline()函数,Python readlines()函数前面章节中讲到,如果想读取用 open() 函数打开的文件中的内容,除了可以使用 read() 函数,还可以使用 readline() 和 readlines() 函数。 和 read() 函数不同,这 2 个函数都以“行”作为读取单位,即每次都读取目标文件中的一行。对于读取以文本格式打开的文件,读取一行很好理解;对于读取以二进制格式打开的文件,它们会以“\n”作为读取一行的标志。 Python

  • 本文向大家介绍python每隔N秒运行指定函数的方法,包括了python每隔N秒运行指定函数的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python每隔N秒运行指定函数的方法。分享给大家供大家参考。具体如下: 这是一个类似定时器的效果,每隔指定的秒数运行指定的函数,采用线程实现,代码简单实用。 希望本文所述对大家的Python程序设计有所帮助。

  • 问题内容: 我尝试完成的任务是流式处理ruby文件并打印输出。(注意:我不想一次打印出所有内容) main.py puts “hello” 问题 流文件工作正常。打招呼/再见输出将延迟2秒打印。就像脚本应该工作一样。问题是readline()最终挂起并且永不退出。我从来没有达到最后的打印。 我知道这里有很多类似的问题,但是这些都不是让我解决问题的方法。我并不是整个子流程中的人,所以请给我一个更实际

  • 问题内容: 我想每0.5秒触发一次功能,并且能够启动,停止和重置计时器。我不太了解Python线程的工作方式,并且在使用python计时器时遇到了困难。 但是,当我执行两次时,我会不断得到帮助。有没有解决的办法?我尝试在每次开始之前申请。 伪代码: 问题答案: 最好的方法是一次启动计时器线程。在计时器线程中,你需要编写以下代码 然后,在启动计时器的代码中,可以停止事件来停止计时器。

  • 我知道如何通过将两个函数作为输入并输出其合成函数来合成两个函数,但如何返回合成函数f(f(…f(x))?谢谢

  • 问题内容: 我先研究了一下,却找不到答案。我试图在Python中并行运行多个函数。 我有这样的事情: 我想调用func1和func2并使它们同时运行。这些功能彼此之间或在同一对象上不相互作用。现在,我必须等待func1完成才能启动func2。我该如何执行以下操作: 我希望能够几乎同时创建两个目录,因为我每分钟都在统计要创建多少个文件。如果该目录不存在,将会拖延我的时间。 问题答案: 你可以使用th