我正在做一些简单的python练习,目标是只读取一个文本文件然后打印它。但是我的程序多打印了一行空白行。
此处显示的文本文件是model.txt,其中包含3个文本行和1个空白行
First row
Second row
This is the third row
我的程序是
file1=open("model.txt","r")
while True:
row=file1.readline()
print(row[:-1])
if row=="":
break
file1.close()
现在所需的打印结果是:
First row
Second row
This is the third row
但是在打印之后有一个额外的空白行:
First row
Second row
This is the third row
有一种方法可以删除该空白行,但我一直无法弄清。
答案 0 :(得分:2)
这是因为您的循环还不够break
。像这样读取文件:
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
和句子末尾的空格。
答案 1 :(得分:1)
默认情况下,print()
将LF添加到打印的每一行,因此,如果您的print(row[:-1])
为空(row[:-1]
为空字符串),那么您仍然会得到该行为。解决方法是替换
print(row[:-1])
使用
val = row[:-1]
if val:
print(val)
因此不会打印空值。
答案 2 :(得分:0)
SELECT COUNT(CustomerID) AS Total, Country
FROM Customers
WHERE regex_like(Country, '^[ugf]','c')
GROUP BY Country
HAVING Total > 5
ORDER BY Total DESC;
因为读取了换行符,所以它也可以用行打印,不需要行[:-1]
这里需要留'end'选项,因为我需要阅读此页面,过滤掉一些python2的内容,然后尝试了解它的作用;) How to print without newline or space?