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