我正在为我的乐队开发一个电子邮件列表程序,尽管我发现了如何使用用户输入将其添加到粉丝列表中,但是当我重新启动该程序时,信息并没有呆在那里我希望能够将程序变成可执行应用程序,您可以在其中输入信息并将其永久保存。只是为了我不给出电子邮件,姓名和位置,所以我创建了一个示例,然后在该示例之后,如果我搜索所有数据,我将在控制台上放置一个 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.
你们已经救了我很多遍,但是如果您以此救了我,那么我的整个程序就基本完成了。感谢您的好意以及您抽出时间回答我所有问题的朋友!
答案 0 :(得分:0)
为了保存数据并在多次运行中持久保存,您必须将其实际保存到磁盘或数据库上的文件中。如果不这样做,它只会在程序运行期间保留在内存中,并在程序退出时被擦除。
永久性存储可以是一个简单的CSV文件,您可以在程序启动时加载该文件,并将其保存为用户输入的内容。但是,DB(例如SQLite)可能更好,因为您可以为数据建立索引,避免重复的条目,查询等等。
Python具有CSV和SQLite以及其他数据库的模块。这是SQLite教程: https://sebastianraschka.com/Articles/2014_sqlite_in_python_tutorial.html