从文件中读取N行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从文件中读取N行相关的知识,希望对你有一定的参考价值。

所以对于课堂,我们必须开始解决这个问题:

编写一个函数,将文件名和整数作为输入。该文件应该打开文件并读入作为第二个参数给出的第一行数。 (您需要使用变量作为此部件的计数器)。

这是非常基本的,我认为需要一个循环,但我无法弄清楚如何将循环纳入问题。我尝试过的东西不起作用,大约3个小时,我能想到的最好的是

def filewrite(textfile,line):
    infile=open(textfile,'r',encoding='utf-8')
    text=infile.readline(line)
    print(text)

然而,这并没有让我得到我需要的功能。它在我的python类介绍中还处于早期阶段,因此基本代码就是我们所使用的。

答案

您可以在此处使用两种基本的循环策略:

  1. 你可以数到n,随时读取线条
  2. 您可以从文件中读取行,跟踪您已读取的数量,并在达到某个数字时停止。

def filewrite(textfile, n):
    with open(textfile) as infile:
        for _ in range(n):
            print(infile.readline(), end='')
    print()

def filewrite(textfile, n):
    with open(textfile) as infile:
        counter = 0
        for line in infile:
            if counter >= n:
                break
            print(line, end='')
            counter += 1

第一个显然更具可读性,因为readline只会返回一个空字符串,如果它用完了行,即使用户要求的行多于infile,它也是安全的。

在这里,我也使用context manager来确保文件在我完成后关闭。


这是一个没有你不认识的东西的版本

def filewrite(textfile, n):
    infile = open(textfile)
    count = 0
    while count < n:
        print(infile.readline())
        count += 1
    infile.close()

以上是关于从文件中读取N行的主要内容,如果未能解决你的问题,请参考以下文章

如何从文件中读取前 n 行和后 n 行?

java如何高效读取文本的第N行和最后N行?

从文件中读取索引“n”低于与给定正则表达式匹配的行的所有行

从文件中读取N行

java文件读取怎么实现从第几行开始读取?

pandas使用read_csv函数随机从文件中读取N行数据pandas使用read_csv函数读取空格分割的文件(space)自定义设置sep参数