我有这个小问题。 如果我从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()
有人可以解释为什么会发生这种情况以及如何解决这个问题? 谢谢:))
答案 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'))