Python:从文本文件读取的打印行之间的 space 太多

Python: Too much space between printing lines read from a text file

我有这个小问题。 如果我从 txt 文件的内容创建一个列表并逐行打印,这些输出之间会有很大的空间。

赞:

姓名

姓名

街道

这就是我想要的风格:

姓名
姓名
街道

这是代码:

import os.path

print('Get User Data')
print()
vName = input('Vorname:   ')
nName = input('Nachname:  ')


data = [vName, nName]

if os.path.isfile('data/'+vName+'_'+nName+'.txt'):
    file = open('data/'+vName+'_'+nName+'.txt', 'r')
    content = file.readlines()
    for element in content:
        print(element)
else:
    data.append(input('Straße/Nr.:'))
    file = open('data/'+vName+'_'+nName+'.txt', 'w')
    for row in data:
        file.write(row)
    print()
    print('New File created. --> /data/'+vName+'_'+nName+'.txt')

file.close()

有人可以解释为什么会发生这种情况以及如何解决吗? 谢谢:)

当您读取文件的行时,每行末尾包含一个字符以跳到新行(换行符)。当您打印其中的每一个时,print 也会添加一个,因此您现在在每个 "real" 行之间有一个额外的空行。正如@FamousJameous 指出的那样,解决方案是使用 strip 在打印之前从字符串中删除换行符。

您只需要在打印前删除换行符 \n

element.strip('\n') 将完成工作。

if os.path.isfile('data/'+vName+'_'+nName+'.txt'):
    file = open('data/'+vName+'_'+nName+'.txt', 'r')
    content = file.readlines()
    for element in content:
        element = element.strip('\n') # this is the line we add to strip the newline character
        print(element)
for a in list(range(9)):
    print(a, file=open('file.txt', 'a'))

this Whosebug question相关:如果您不想更改您的输入,您可以停止打印以添加换行符。

In Python 3, the print statement has been changed into a function. In Python 3, you can instead do:

 print('.', end="")