社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

mike.h67 • 4 年前 • 1719 次点击  

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

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
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133606
文章 [ 1 ]  |  最新文章 4 年前
Eric Jin
Reply   •   1 楼
Eric Jin    4 年前

你正在读前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