代码之家  ›  专栏  ›  技术社区  ›  mike.h67

python程序读取文件并打印文件的前两行和最后两行

  •  1
  • mike.h67  · 技术社区  · 3 年前

    我在写一个程序,用户输入一个文件名,然后输出读取文件,只打印文件的前两行和最后两行。我已经想出了如何打印前两行,我也试着打印文件的最后两行,但遇到了一个小问题。有人能解释我做错了什么吗?

    f1 = open(input("Source file name: "))
    
    line1= f1.readline()
    line2= f1.readline()
    line12= f1.readline()
    line13= f1.readline()
    print("Output:",line1,line2,line12[-1],line13[-2], sep= "")
    f1.close()
    

    该文件有13行长,因此输出如下

    output: 
    line 1 
    line 2
    line 12
    line 13
    
    1 回复  |  直到 3 年前
        1
  •  1
  •   Eric Jin sud    3 年前

    你正在读前4行。你需要通读它们,只保留最后两个。

    保存最后两行代码:

    line1 = f1.readline()
    line2 = f1.readline()
    
    last1, last2 = f1.readline(), f1.readline()
    while True:
        line = f1.readline()
        if not line:  # eof
            break
        last1, last2 = line, last1
    
    print("Output:",line1,line2,last2,last1, sep= "")
    

    例如,使用文件 test.txt :

    Line1
    line2
    Line3
    line4
    Line5
    line6
    last line, line 7
    

    Output:Line1
    line2
    line6
    last line, line 7