python pickle用法_python-pickle模块使用实例

importpickle#第一次运行请去掉下面一段代码的注释

'''users_db = open("users.txt","wb")

users_list = [["admin","admin",1],["tiannan","123456",1],["jide","123",0]]

#["admin","admin",1] -> [,,]

pickle.dump(users_list,users_db)

users_db.close()'''users_db=open("users.txt","rb")

users_list=pickle.load(users_db)

users_db.close()#print(users_list)

#用户登录机会

users_pass ={}for i inusers_list:

users_name=i[0]

users_pass[users_name]=3

#users_pass = {"admin":3,"tiannan":3,"jide":3} -> {:}#print(users_pass)

defha_user(user_name):

no_user= "yes"

for j, users_msg inenumerate(users_list):#print(i,users_msg)

#判断用户名是否存在

if user_name inusers_msg:

no_user=jbreak

returnno_userdefwrite_db():

users_db= open("users.txt","wb")

pickle.dump(users_list,users_db)

users_db.close()defchange_password():

password1= input("请输入新密码:")

password2= input("请再次输入新密码:")if password1 ==password2:

users_list[index][1] =password1

write_db()print("密码修改成功!")else:print("您输入的密码不一致!")whileTrue:

sel= int(input("选择:<1>登录 <2>注册\n"))if sel == 1:

name= input("请输入用户名:")

password= input("请输入密码:")

index=ha_user(name)if index == "yes":print("用户名不存在!")else:

users_info=users_list[index]#判断用户是否处于锁定状态

if users_info[-1] ==0:print("%s用户已被锁,请联系管理员解锁账户!" %users_info[0])else:if password == users_info[1]:#重置账户锁定验证次数

users_pass[name]=3

print("登录成功!")while name == "admin":

sel2= int(input("请选择:<1>修改密码 <2>重置用户 <3>查看用户 <4>退出\n"))if sel2 == 1:

change_password()elif sel2 == 2:

name2= input("请输入需要重置的用户名:")

index3=ha_user(name2)if index3 == "yes":print("用户名不存在!")else:

users_list[index3][1]= "123456"users_list[index3][-1]= 1write_db()print("%s用户重置成功!" %name2)elif sel2 == 3:

name2= input("请输入查找的用户名:")

index2=ha_user(name2)if index2 != "yes":print(users_list[index2])else:print("该用户不存在!")elif sel2 == 4:break

while name != "admin":

sel3= int(input("请选择:<1>修改密码 <2>退出\n"))if sel3 == 1:

change_password()elif sel3 == 2:break

else:

users_pass[name]-=1

if users_pass[name] >0:print("密码错误,你还有%d次机会,请重新登录!" %users_pass[name])else:

users_list[index][-1]=0

write_db()print("%s用户多次登录失败,已被锁,请联系管理员解锁账户!" %users_info[0])elif sel == 2:

name= input("请输入用户名:")

password= input("请输入密码:")

result=ha_user(name)if result == "yes":

user_list= [name,password,1]

users_list.append(user_list)

write_db()print("注册成功!")else:print("该用户名已被注册!")

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值