我是python的新手,我正在尝试读取一个简单的txt文件的每一行,但是当在终端中打印出结果时,在每一行之间都有一个空行,在txt文件中不存在我使用strip()方法来避免该行,这是代码:
ins = open( "abc.txt", "r" )
array = []
for line in ins:
array.append( line )
ins.close()
for riga in array:
if line.strip() != '':
print riga
这是txt文件:
a
b
c
这是终端的结果:
a
b
c
我无法理解为什么在a,b,c,任何想法之间创建空行?
答案 0 :(得分:3)
因为文本文件中的所有内容都是字符,所以当您看到类似的内容时:
a
b
c
它的实际上 a\nb\nc\n
,\n
表示新行,这就是你获得额外空间的原因。如果您想将文本文件中的所有内容按照原样打印到输出控制台,我会修复您的print
语句,如下所示:
print riga,
这可以防止添加额外换行符\n
。
答案 1 :(得分:0)
这应该是:
for riga in array:
if line.strip() != '':
print riga
此:
for riga in array:
if riga.strip() != '': # <= riga here not line
print riga.strip() # Print add a new line so strip the stored \n
或者更好:
array = []
with open("abc.txt") as ins:
for line in ins
array.append(line.strip())
for line in array:
if line:
print line
答案 2 :(得分:0)
当你运行line.strip() != ''
时,我认为这并不是你所期望的。
strip()
上的line
字符串方法,该方法将是文件的最后一行,因为您已经迭代了之前line
中的所有for
}循环,将line
变量分配给最后一个。line
返回的剥离字符串是否不等于''
。 riga
。您需要在要打印的字符串上运行strip()
,然后存储结果或立即打印,为什么不在这样的for
循环中完成所有操作:
array = []
with open("abc.txt", "r") as f:
for line in f:
array.append(line.strip())
print(array[-1])