从文件中读取N行

时间:2018-01-30 02:57:27

标签: python loops io

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

  

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

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

def filewrite(textfile,line):
    infile=open(textfile,'r',encoding='utf-8')
    text=infile.readline(line)
    print(text)
然而,这并没有让我得到我所需要的功能。它在我的python类介绍中还处于早期阶段,因此基本代码就是我们所有的工作。

1 个答案:

答案 0 :(得分:0)

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

  1. 您可以算上n,随时阅读

  2. 您可以从文件中读取行,跟踪您已阅读的内容,并在达到某个数字时停止。

  3. 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()