Python程序在读取文本文件后打印一个空行

Python程序在读取文本文件后打印一个空行,python,Python,我正在做一些简单的python练习,目标是简单地读取一个文本文件,然后打印它。但我的程序会多打印一行空白 文本文件为model.txt,此处显示有3个文本行和1个空行 First row Second row This is the third row 我的节目是 file1=open(“model.txt”、“r”) 尽管如此: 行=文件1.readline() 打印(第[:-1]行) 如果行==“”: 打破 file1.close() 现在想要的打印结果是: First row Sec

我正在做一些简单的python练习,目标是简单地读取一个文本文件,然后打印它。但我的程序会多打印一行空白

文本文件为model.txt,此处显示有3个文本行和1个空行

First row
Second row
This is the third row

我的节目是

file1=open(“model.txt”、“r”)
尽管如此:
行=文件1.readline()
打印(第[:-1]行)
如果行==“”:
打破
file1.close()
现在想要的打印结果是:

First row
Second row
This is the third row
但打印后会有一个额外的空行:

First row
Second row
This is the third row

有一种方法可以删除那一个空行,但我还没有弄清楚。

默认情况下,
print()
将LF添加到打印的每一行,因此如果您的
打印(行[:-1])
为空(
行[:-1]
为空字符串),您仍然会得到该行为。解决办法是更换

print(row[:-1])


所以不会打印空值。

这是因为循环没有足够快地中断。改为如下方式读取文件:

with open('model.txt', 'r') as file1:
  for line in file1.readlines():
      trimmed_line = line.rstrip()
      if trimmed_line: # Don't print blank lines
          print(trimmed_line)
with
语句将处理自动关闭文件的操作,
rstrip()
将删除句子末尾的
\n
和空格

file = open("model.txt", "r") 
for line in file: 
   print(line, end='')
因为换行符是读取的,所以它也可以用行打印,不需要行[:-1]

“end”选项留在这里,因为我需要阅读此页面,过滤掉一些python2内容,然后尝试了解它的作用;)

readline()
在末尾包含换行符。所以空白行不是“代码>”“,它是<代码>”\n“/COD>”。实际上,当我用Python 3尝试时,它删除了最后一行的最后一个字母。所以,使用line.replace(“\n”,”)可能更好?这是如何解决问题的?输入文件的末尾实际上包含一个空行,他不想打印。@Pain或者我只是从他的问题中复制了它,我不知道它的原因。
file = open("model.txt", "r") 
for line in file: 
   print(line, end='')