Python打开文件并将名称列表放在单独的行上
我正在尝试用Python 3写一个程序。
我需要打开一个文本文件,读取一个名字列表,打印这个列表,把它按字母顺序排序,然后再打印一次这个列表。虽然还有一些其他的内容,但我遇到的问题是,我应该把每个名字打印在单独的一行上。
但是现在它却把所有的名字都打印在了一行上。请问我该怎么解决这个问题呢?
def main():
#create control loop
keep_going = 'y'
#Open name file
name_file = open('names.txt', 'r')
names = name_file.readlines()
name_file.close()
#Open outfile
outfile = open('sorted_names.txt', 'w')
index = 0
while index < len(names):
names[index] = names[index].rstrip('\n')
index += 1
#sort names
print('original order:', names)
names.sort()
print('sorted order:', names)
#write names to outfile
for item in names:
outfile.write(item + '\n')
#close outfile
outfile.close()
#search names
while keep_going == 'y' or keep_going == 'Y':
search = input('Enter a name to search: ')
if search in names:
print(search, 'was found in the list.')
keep_going = input('Would you like to do another search Y for yes: ')
else:
print(search, 'was not found.')
keep_going = input('Would you like to do another search Y for yes: ')
main()
1 个回答
2
问题出在这里:print('original order:', names)
。这个代码会把列表中的所有内容都打印在一行上。如果你想让每个元素都单独打印在新的一行上,你需要这样做:
print('original order:')
for name in names:
print(name)
names.sort()
print('sorted order:')
for name in names:
print(name)