import csv
# 输入个人信息的函数
def input_alumni():
name = input('请输入同学的姓名:')
live = input('请输入同学所在地址:')
telephone = input('请输入同学联系方式:')
# 以元组的形式返回
return name, live, telephone
# 写入同学录
def csv_writer(file_name, result):
with open(file_name, 'a', encoding='utf-8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=['同学名称', '地址', '联系方式'])
writer.writerow({'同学名称': result[0], '地址': result[1], '联系方式': result[2]})
# 读取同学录
def csv_reader(file_name):
f = open(file_name, 'r', encoding='utf-8')
reader = csv.DictReader(f)
return reader
# 定义查询功能的函数
def find(file_name):
find_name = input('你要找哪位同学的信息呢:')
print('-'*40 + '\n正在查找···\n')
for row in csv_reader(file_name):
if find_name == row['同学名称']:
print('同学名称:{} 地址:{} 联系方式:{}'.format(row['同学名称'], row['所在地'], row['联系方式']))
break
else:
print('查无此人')
print('-' * 40)
# 定义展示同学录信息的函数
def show_info(file_name):
print('现在有{}位同学在同学录中'.format(len(list(csv_reader(file_name)))))
print('-' * 40 + '张国富同学录' + '-' * 40)
for row in csv_reader(file_name):
print('同学名称:{} 地址:{} 联系方式:{}'.format(row['同学名称'], row['所在地'], row['联系方式']))
# 进入主程序,欢迎界面,循环询问是否录入同学录
def main():
print('欢迎进入同学录小程序')
start = input('请问是要创建新csv文件,还是打开已有csv文件?(回答创建或打开):')
file_name = input('请输入csv文件名(以文件名.csv的格式写入):')
with open(file_name, 'a', encoding='utf-8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=['同学名称', '地址', '联系方式'])
if start == '创建':
# 写入列标题,即DictWriter构造方法的fieldnames参数
writer.writeheader()
elif start == '打开':
print('已打开{}文件。'.format(file_name))
answer = input('现在可以开始录入同学录么?(回答y开始录入,回答t显示目前同学录,回答f寻找个人信息,输入q退出程序):')
while True:
if answer == 'y':
result = input_alumni()
csv_writer(file_name, result)
elif answer == 't':
show_info(file_name)
elif answer == 'f':
find(file_name)
elif answer == 'q':
break
answer = input('还录入同学录么?(回答y继续录入,回答t显示目前同学录,回答f寻找个人信息,回答q退出录入):')
print('\n录入结束\n')
# 调用函数
main()
代码报错,请各位编程家指正。
如果可以的话请帮我加一下修改和删除的功能
我觉得各位有必要先把这个代码运行一下