python在写入文件时的问题?

初学,用python写入文件并保存时,由于文件类型为词典,于是用str()转换后写入文件,但是读取文件时却出现异常,具体情况如下图,图中有具体描述第一张那个图片中的全部程... 初学,用python写入文件并保存时,由于文件类型为词典,于是用str()转换后写入文件,但是读取文件时却出现异常,具体情况如下图,图中有具体描述

第一张那个图片中的全部程序:
stuinfo=[]
apple = str(stuinfo)
#定义函数:
def printMenu():
print("欢迎来到霍格沃兹魔法学院学生信息管理系统 V9.6.3")
print("=" * 30)
print("1、添加学生信息")
print("2、删除学生信息")
print("3、修改学生信息")
print("4、查找学生信息")
print("5、打印学生信息")
print("6、退出系统")
print("7、保存数据")
print("=" * 30)

def save2file():
f = open("studendata.txt","w")
f.write(str(stuinfo))
f.close
print(apple)
def inputMenu():
name = input("请输入要添加学生姓名:")
sex = input("请输入要添加学生性别:")
tel = input("请输入要添加学生电话:")

info["name"] = name
info["sex"] = sex
info["tel"] = tel
stuinfo.append(info)
print("学生信息添加成功!")

#打印提示语
while True:
printMenu()

key=int(input("请输入您要操作的编号:"))
info = {}
#当用户输入1时的操作
if key==1:
inputMenu()

#当用户输入2时的操作
elif key==2:
i=int(input("请输入您要删除学生的序号:"))
del stuinfo[i-1]

#当用户输入3时的操作
elif key==3:
i = int(input("请输入您要修改学生的序号:"))
name = input("请输入修改后学生姓名:")
sex = input("请输入修改后学生性别:")
tel = input("请输入修改后学生电话:")

info["name"] = name
info["sex"] = sex
info["tel"] = tel
stuinfo[i-1]=info
print("学生信息修改成功!")
#当用户输入4时的操作
elif key==4:
print("抱歉!该功能目前未开发")

#当用户输入5时的操作
elif key==5:
print("学生信息如下:")
print("=" * 30)
print("序号 姓名 性别 电话")
i=1
for result in stuinfo:
print
展开
 我来答
百度网友1acedf5
2020-08-04 · TA获得超过374个赞
知道小有建树答主
回答量:380
采纳率:73%
帮助的人:129万
展开全部

一个小误区,你给apple赋值为str(stuinfo)太早了,细节例子及说明见下图:

阳光的雷咩咩
2020-08-03 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7660万
展开全部
  1. 建议直接用pickle库来实现存取

  2. 如果你非要用str来写文件,那建议读文件的时候要用eval转换一下

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hy1397471
2020-08-03 · 知道合伙人软件行家
hy1397471
知道合伙人软件行家
采纳数:4714 获赞数:17152
15年数据库维护及数据库应用系统开发经验,从事零售业、服务业及财务管理类系统开发与维护。

向TA提问 私信TA
展开全部
你发的代码不全吗?
你只写了保存文件的函数,没有调用
也没有文件读取的操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式