Python:从文本文件中读取的打印行之间的空间太大

时间:2016-08-30 22:21:15

标签: python list file read-write

我有这个小问题。  如果我从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()

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

4 个答案:

答案 0 :(得分:1)

在打印之前,您只需要删除换行符\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)

答案 1 :(得分:1)

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

  

在Python 3中,print语句已更改为函数。在Python 3中,您可以改为:

 print('.', end="")

答案 2 :(得分:0)

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

答案 3 :(得分:-1)

for a in list(range(9)):
    print(a, file=open('file.txt', 'a'))