gpt4 book ai didi

python - 如何将所有内容转换为 csv?

转载 作者:太空宇宙 更新时间:2023-11-03 20:35:32 26 4
gpt4 key购买 nike

我不知道如何问这个问题,所以希望标题不会令人困惑。我正在创建一个电子邮件列表程序,它将存储的信息保存在列表中。命令行中有一个“添加数据”选项,您可以使用用户输入将信息附加到列表中。当我附加信息时,程序仅保留该信息,直到重新启动为止。当程序重新启动时,该信息不再存在。有人告诉我,使用在程序启动时加载的“csv 文件”是我在多次运行中保持信息持久性的方法。显然,我使用的代码是一个示例,所以我不会给出每个人的信息,但是我是否可以使用 csv 文件导入所有这些信息,而不需要对代码进行太多更改?我的程序即将完成,只需要弄清楚如何以持久存储信息并且在重新启动程序时不会被删除的方式编写其余代码。

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()

最佳答案

要从 csv 读取数据,请在程序中定义此函数:

def read_from_csv():
fans = []
with open('fans.csv', newline='') as f:
reader = csv.writer(f)
# Skip the header row.
next(reader)
for row in reader:
fan = Emails(*row)
fans.append(fan)
return fan

而不是

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

fans = read_from_csv()

要保存数据,请在程序中定义此函数

def write_to_csv(fans):
with open('fans.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['name', 'location', 'email'])
for fan in fans:
writer.writerow([fan.name, fan.location, fan.email])
return

然后做

write_to_csv(fans)

就在程序完成之前。

请参阅 csv module 的文档有关在 Python 中处理 csv 文件的更多信息,请参阅标准库。

关于python - 如何将所有内容转换为 csv?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57190691/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com