python使用文件储存实现登录系统

对系统的登录进行判断,也就是说对不同的输入进行判断是否账号密码正确从而进行登录。

import os

file_name = '用户信息'

def main():
    f = open("user.txt", "r")
    u = f.read()
    f.close()
    if u == '0':
        print("首次启动")
        print_mune()
        w_file()
        init()
        user_select()
    elif u == '1':
        print("欢迎回来")
        user_select()
    else:
        print("登录出错")


# 更改文件内容,使得登录状态发生改变
def w_file():
    f = open("user.txt", "w")
    f.write("1")
    f.close()


def init():
    root = {'name': 'root', 'r_password': '123456'}
    # 创建管理员
    f = open("u_root", "w")
    f.write(str(root))
    f.close()
    if not os.path.exists(file_name):
        os.mkdir(file_name)


def print_mune():
    print("选择登录 0:普通用户 1:管理员身份")
    print("==================================")


def user_select():
    while True:
        user_type = input("选择身份  0:普通用户 1:管理员身份")
        if user_type == '0':
            print("普通用户登录")
            s = input("是否需要注册 y/n")
            while True:
                if s == 'y' or s == 'Y':
                    print("用户注册")
                    user_res()
                    break
                elif s == 'n' or s == 'N':
                    user_login()
                    break
                else:
                    print("输入错误")
                break
        elif user_type == '1':
            print("管理员登录")
            root_login()
            break
        else:
            print("输入有误")
            break
        break


def root_login():
    while True:
        root_name = input("请输入账号")
        root_password = input("请输入密码")
        f = open("user", "r")
        root = eval(f.read())
        f.close()
        if root_name == root['name'] and root_password == root['r_password']:
            print("登录成功")
            break
        else:
            print("登录失败,请确认账号密码!")


def user_login():
    while True:
        user_name = input("请输入账号")
        user_password = input("请输入密码")
        f_path = file_name + '/' + user_name
        f = open(f_path, "r")
        user = eval(f.read())
        f.close()
        if user_name == user['name'] and user_password == user['u_password']:
            print("登录成功")
            break
        else:
            print("登录失败,请确认账号密码!")


def user_res():
    user_name = input("请输入账号")
    user_password = input("请输入密码")
    user = {"name": user_name, "u_password": user_password}
    f_path = file_name + '/' + user_name
    f = open(f_path, 'w')
    f.write(str(user))
    f.close()


if __name__ == '__main__':
    main()

在这里需要使用到一个文件user.txt 在里面写入一个0,在进行登录的操作的时候会进行变化。

在选择是否需要注册账号的时候,注册账号之后,会把账号密码进行用一个文件进行保存,且文件名就是账号,以至于在进行登录的时候直接查询以账号为文件名的文件进行密码匹配

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,下面是一个使用 Tkinter 实现用户登录系统并将账号信息存储在本地文件中的示例代码: ```python import tkinter as tk # 创建窗口 window = tk.Tk() window.title('用户登录系统') # 创建标签 label_username = tk.Label(window, text='用户名') label_username.pack() # 创建输入框 entry_username = tk.Entry(window) entry_username.pack() # 创建标签 label_password = tk.Label(window, text='密码') label_password.pack() # 创建输入框 entry_password = tk.Entry(window, show='*') entry_password.pack() # 创建登录按钮 def login(): username = entry_username.get().strip() password = entry_password.get().strip() if username and password: with open('users.txt', 'r') as f: users = f.readlines() for user in users: user = user.strip().split(',') if user[0] == username and user[1] == password: tk.messagebox.showinfo(title='登录成功', message='欢迎回来,{}'.format(username)) break else: tk.messagebox.showerror(title='登录失败', message='用户名或密码错误') else: tk.messagebox.showwarning(title='提示', message='用户名和密码不能为空') button_login = tk.Button(window, text='登录', command=login) button_login.pack() # 创建退出按钮 button_quit = tk.Button(window, text='退出', command=window.quit) button_quit.pack() # 运行窗口 window.mainloop() ``` 在这个示例代码中,我们使用了 Tkinter 创建了一个简单的登录界面,用户可以输入用户名和密码进行登录登录时,程序会读取本地文件 `users.txt` 中的账号信息,如果用户名和密码匹配,就会弹出登录成功的提示框,否则会弹出登录失败的提示框。在登录成功后,用户可以选择退出程序,或者继续操作。 为了简化示例代码,我们将账号信息保存在了一个文本文件中,每行一个账号信息,格式为 `用户名,密码`。在实际应用中,我们可能需要使用更安全的方式保存账号信息,比如使用数据库或加密文件等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Modify_QmQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值