如何使用停留在列表中的用户输入追加到列表?

时间:2019-07-20 02:35:09

标签: python-3.x arraylist input

我正在为我的乐队开发一个电子邮件列表程序,尽管我发现了如何使用用户输入将其添加到粉丝列表中,但是当我重新启动该程序时,信息并没有呆在那里我希望能够将程序变成可执行应用程序,您可以在其中输入信息并将其永久保存。只是为了我不给出电子邮件,姓名和位置,所以我创建了一个示例,然后在该示例之后,如果我搜索所有数据,我将在控制台上放置一个 Imgur 链接,而循环仍在运行,重新启动程序并重试后看起来是什么样子(重新启动时未显示):

class Emails:
    def __init__(self, name, location, email):
        self.name = name
        self.location = location
        self.email = email


fans = [Emails('james franco', 'california', 'jamesfranco@gmail.com'),
        Emails('john cena', 'california', 'johncena@hotmail.com')
        ]


def append_input():
    input_name = input('Add Name: ')
    input_location = input('Add Location: ')
    input_email = input('Add Email: ')
    fans.append(Emails(input_name, input_location, input_email))


def all_data():
    for fan in fans:
        print(fan.name + '\n')
        print(fan.location + '\n')
        print(fan.email + '\n________________')



while True: 
    start_search = input("What would you like to search?(Name/Location/Email/All Data/Add Data): ")
    if start_search == "Add Data":
        append_input()
    if start_search == "All Data":
        all_data()

Before refreshing console and inputing "all data" to check(works fine)

After refreshing console and inputing "all data" to check. Lil wayne is not there.

你们已经救了我很多遍,但是如果您以此救了我,那么我的整个程序就基本完成了。感谢您的好意以及您抽出时间回答我所有问题的朋友!

1 个答案:

答案 0 :(得分:0)

为了保存数据并在多次运行中持久保存,您必须将其实际保存到磁盘或数据库上的文件中。如果不这样做,它只会在程序运行期间保留在内存中,并在程序退出时被擦除。

永久性存储可以是一个简单的CSV文件,您可以在程序启动时加载该文件,并将其保存为用户输入的内容。但是,DB(例如SQLite)可能更好,因为您可以为数据建立索引,避免重复的条目,查询等等。

Python具有CSV和SQLite以及其他数据库的模块。这是SQLite教程: https://sebastianraschka.com/Articles/2014_sqlite_in_python_tutorial.html