Python打开文件并将名称列表放在单独的行上

0 投票
1 回答
2604 浏览
提问于 2025-04-17 06:40

我正在尝试用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)

撰写回答