【发布时间】:2015-12-12 15:38:25
【问题描述】:
我正在创建一个登录脚本,并将用户名和密码存储在字典中。问题是,当我第二次打开它时,它不会存储已经注册的用户。我知道这很正常,但有没有办法解决这个问题?也许使用文件?
这是我的编辑代码:
import os
import sys
users={}
status=""
def login():
status=raw_input("Are you a new user?")
if status=="y"
createnewuser=raw_input("Create username: ")
if createnewuser in users:
print "User already exists!"
else createpsswrd=raw_input("Create new password")
users[createnewuser]=createpsswrd
print "Register successful!"
elif status == "n":
login=raw_input("Username: ")
passw=raw_input("Password: ")
if login in users and users[login]==passw:
print "Login successful!"
os.system("python file.py")
return
else:
print "Username and password do not match."
try:
with open('file') as infile:
cPickle.load(infile)
except:
users = {}
while status != "q":
login()
with open('file') as outfile:
cPickle.dump(users, outfile)
编辑结果: 我通过整个脚本没有任何错误,但输出文件上没有任何内容。字典仍然没有跨会话保存,所以没有任何改变。我也将所有 sys.exit() 更改为返回。如果这很重要,我会在树莓派 2 上使用 Raspian。
编辑 2
下面由我回答:)
【问题讨论】:
-
另外,杀死
sys.exit()。这将抛弃您以后提出的任何外部程序流程。使用return来突破函数,而不是
标签: python dictionary memory