如何在python程序中将数据写入文件?

时间:2018-07-17 16:47:49

标签: python python-3.x

我写了一个代码来创建用户并登录,但是创建的用户只有在程序运行时才会在内存中,并且当程序关闭时,该用户将被销毁。现在,如果我决定将用户名和密码存储到文件中,那么如何在下面的python代码中进行存储,我只想将其存储到文件中而不读取或比较它。而且我刚刚开始学习Python,所以不知道任何高级知识或棘手的术语。

编辑:我无法将用户名和密码写入文件。

users = {}
status = ""

f = open('E:\\login_try2.txt','w')

def displayMenu():
    status = input("Are you registered user? y/n/q ")
    if status == "y":
        oldUser()
    elif status == "n":
        newUser()
    elif status == "q":
        exitCode()

def exitCode():
    exit()

def newUser():
    username = input("Enter username: ")     
    f.write(username)

    if username in users:
        print("\nUsername already exists!\n")
    else:
        password = input("Create Password: ")
        users[username] = password
        f.write(password)
        print("\nUser created\n")

def oldUser():
    login = input("Enter username: ")
    passw = input("Enter password: ")

    if login in users and users[login] == passw:
        print("\nLogin Successful!\n")
    else:
        print("\nUser doesnt exist or wrong password!\n")

while status != "q":
    displayMenu()

f.close()

2 个答案:

答案 0 :(得分:1)

问题在于您的f.close()语句仅在退出应用程序后才执行,因此数据无法可靠地刷新到文件中。

最简单的解决方法可能是在f.close()函数中将f.write(password)移到newUser之后。

答案 1 :(得分:0)

答案很简单。由于程序无法在文件中存储数据,因此未调用f.close()。所以我在f.close()

中添加了def exitCode():
def exitCode():
    f.close()
    exit()