Python文件操作实战案例之用户登录

目录
  • 一、前言
  • 二、案例:用户登录
    • 1.案例分析
    • 2.程序设计
      • 2.1 main()
      • 2.2 c_flag()
      • 2.3 init()
      • 2.4 print_login_menu()
      • 2.5 user_select()
      • 2.6 root_login()
      • 2.7 user_register()
      • 2.8 user_login()
    • 3.功能演示
  • 总结

一、前言

在上一小节,我们介绍了文件的基本操作以及数据交换的格式,为了巩固我们上一节文件操作的知识。

在这里我们做一个最基本的案例:用户登录

二、案例:用户登录

许多的应用都涉及数据的存储和使用,作为存储数据的基本形式,文件与应用密不可分。

1.案例分析

用户登录模块可分为管理员和用户登录,若使用该软件或浏览器中,系统就会判断用户是否为首次使用:若是首次使用,则进行初始化,否则进入用户类型选择。若选择管理员登录,则直接登录。如果是用户,那么就给用户提示是否需要注册登录。

根据以上分析,用户管理模块包含以下几个文件

  • 标识位文件flag 用于检测是否初次登录,初识数据为0,首次启动程序为将其中数据修改为1
  • 管理员账户文件u_root。用于保存管理员的账户信息
  • 普通用户账户文件。用于保存普通用户注册的账户。

2.程序设计

  • main()程序的入口
  • c_flag : 标识位文件更改
  • init 信息初始化
  • print_login_menu 打印登录菜单
  • user_select 用户选择
  • root_login 管理员登录
  • user_register 用户注册
  • user_login 普通用户登录

2.1 main()

该函数是程序的入口,这里需要做的就是判断是否是首次使用该系统,保证读取到的为同一个标志位对象,这里将标志位对象的数值存储到文件flag中,每次启动程序时都先调用main函数 该函数应先打开flag文件,从其中读取数据进行判断,根据表示文件的数据来进行执行不同的分支。

def main():
    flag = open("flag")
    word = flag.read()
    if word == "0":
        print("首次登录")
        flag.close()
        c_flag() #标识为1
        init() # 初始化
        print_login_menu() #打印登录菜单
        user_select() # 选择用户
    elif word == "1":
        #不是首次登录
        print("欢迎回来")
        print_login_menu()
        user_select()
    else:
        print("初始化异常...")

2.2 c_flag()

该函数用于修改flag文件中的内容

def c_flag():
    file = open("flag","w")
    file.write("1")
    file.close()

2.3 init()

初次启动系统时,需要创建管理员账户和用户文件

#3.初始化 创建管理员文件和普通用户目录
def init():
    file = open("u_root","w") # 创建并打开管理员账户文件
    root = {"username" : "root","pwd" : "123456"}
    file.write(str(root))
    file.close()
    os.mkdir("users")

2.4 print_login_menu()

该函数用于打印菜单

2.5 user_select()

系统根据用户输入,选择执行不同的流程。

用户输入1 调用root_login函数进行管理员登录等等

def user_select():
    while True:
        user_type_select = input("请输入选择用户类型:")
        if user_type_select == "1":
            root_login()
            break
        elif user_type_select == "2":
            while True:
                select = input("是否需要注册?(y/n)")
                if select == "y" or select == "Y":
                    print("---用户注册---")
                    user_register() # 用户注册
                    break
                elif select == "n" or select == "N":
                    print("用户登录")
                    break
                else:
                    print("输入有误 重新选择")
            user_login() #用户登录
            break
        elif user_type_select == "0":
            return
        else:
            print("输入有误,请重新选择")

2.6 root_login()

实现管理员登录

def root_login():
    while True:
        print("管理员登录")
        root_user = input("请输入账户:")
        root_pwd = input("请输入密码")
        file_root = open("u_root") #只读的方式打开
        root = eval(file_root.read()) #读取账户信息
        #信息校验
        if root_user == root["username"] and root_pwd == root["pwd"]:
            print("登录成功")
            break
        else:
            print("校验失败")

2.7 user_register()

用户注册函数

def user_register():
    user_id = input("请输入用户名:")
    user_pwd = input("请输入密码")
    user_name = input("请输入昵称")
    user = {"u_id" : user_id,"u_pwd":user_pwd,"u_name":user_name}
    user_path = "./users" + user_id
    file_user = open(user_path,"w") #创建用户文件
    file_user.write(str(user)) #写入
    file_user.close() #保存关闭

2.8 user_login()

实现用户登录函数,校验文件中的数据和输入的数据

def user_login():
    while True:
        print("普通用户登录")
        user_id = input("请输入账户名:")
        user_pwd = input("请输入密码")
        #获取users目录下的所有文件
        user_list = os.listdir("./users")
        #遍历列表 判断user_id是否在列表中
        flag = 0
        for user in user_list:
            if user == user_id:
                flag = 1
                print("登录中....")
                #打开文件
                file_name = "./users" + user_id
                file_user = open(file_name)
                #获取文件内容
                user_info = eval(file_user.read())
                if user_pwd == user_info["u_pwd"]:
                    print("登录成功")
                    break
        if flag == 1:
            break
        elif flag == 0:
            print("没有该用户 请先注册")
            break

到这里用户登录案例就完成了

最后在程序中添加如下代码:

if __name__ == "__main__":
    main()

3.功能演示

在程序目录中创建flag文件,并在其中输入0,保存退出,执行程序

代码汇总

import os
#3.初始化 创建管理员文件和普通用户目录
def init():
    file = open("u_root","w") # 创建并打开管理员账户文件
    root = {"username" : "root","pwd" : "123456"}
    file.write(str(root))
    file.close()
    os.mkdir("users")

#4.打印登录菜单
def print_login_menu():
    print("-----用户选择-----")
    print("-----1.管理员登录-----")
    print("-----2.普通用户登录-----")
    print("-----0.退出-----")
    print("-"*30)
#6.管理员登录
def root_login():
    while True:
        print("管理员登录")
        root_user = input("请输入账户:")
        root_pwd = input("请输入密码")
        file_root = open("u_root") #只读的方式打开
        root = eval(file_root.read()) #读取账户信息
        #信息校验
        if root_user == root["username"] and root_pwd == root["pwd"]:
            print("登录成功")
            break
        else:
            print("校验失败")

#7.普通用户注册 在我们的分析当中 没有提前创建好文件用于保存用户信息 所以需要注册
def user_register():
    user_id = input("请输入账户id:")
    user_pwd = input("请输入密码")
    user_name = input("请输入用户名")
    user = {"u_id" : user_id,"u_pwd":user_pwd,"u_name":user_name}
    user_path = "./users/" + user_id
    file_user = open(user_path,"w") #创建用户文件
    file_user.write(str(user)) #写入
    file_user.close() #保存关闭

#8.用户注册完毕之后 登录用户
def user_login():
    while True:
        print("普通用户登录")
        user_id = input("请输入账户id:")
        user_pwd = input("请输入密码")
        #获取users目录下的所有文件
        user_list = os.listdir("./users")
        #遍历列表 判断user_id是否在列表中
        flag = 0
        for user in user_list:
            if user == user_id:
                flag = 1
                print("登录中....")
                #打开文件
                file_name = "./users/" + user_id
                file_user = open(file_name)
                #获取文件内容
                user_info = eval(file_user.read())
                if user_pwd == user_info["u_pwd"]:
                    print("登录成功")
                    break
        if flag == 1:
            break
        elif flag == 0:
            print("没有该用户 请先注册")
            break

def user_select():
    while True:
        user_type_select = input("请输入选择用户类型:")
        if user_type_select == "1":
            root_login()
            break
        elif user_type_select == "2":
            while True:
                select = input("是否需要注册?(y/n)")
                if select == "y" or select == "Y":
                    print("---用户注册---")
                    user_register()  #用户注册
                    break
                elif select == "n" or select == "N":
                    print("用户登录")
                    break
                else:
                    print("输入有误 重新选择")
            user_login() #用户登录
            break
        elif user_type_select == "0":
            return
        else:
            print("输入有误,请重新选择")
#2.用于修改flag文件中内容 初次启动系统被调用
def c_flag():
    file = open("flag","w")
    file.write("1")
    file.close()

# 1.#判断是否为首次使用函数
def main():
    flag = open("flag")
    word = flag.read()
    if word == "0":
        print("首次登录")
        flag.close()
        c_flag() #标识为1
        init() # 初始化
        print_login_menu() #打印登录菜单
        user_select() # 选择用户
    elif word == "1":
        #不是首次登录
        print("欢迎回来")
        print_login_menu()
        user_select()
    else:
        print("初始化异常...")

if __name__ == "__main__":
    main()

总结

到此这篇关于Python文件操作实战案例之用户登录的文章就介绍到这了,更多相关Python用户登录内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 用Python写一段用户登录的程序代码

    如下所示: #!/usr/bin/env python #coding: utf8 import getpass db = {} def newUser(): username = raw_input('username: ') if username in db: #添加打印颜色 print "\033[32;1m%s already exists![0m" % username else: #屏幕不显示密码,调用getpass.getpass() password = getpas

  • python实现用户登录系统

    本文实例为大家分享了用户登录系统python实现代码,供大家参考,具体内容如下 注意事项: 1.使用python3执行程序.按提示输入1或2,登录或退出程序 2.输入用户名后,如果用户名被锁定及无效用户名,程序会退出,请确保输入正确. 3.输入用户名正确后,输入密码.用户名正确的情况下,密码连续输错三次,用户将被锁定,禁止登录系统 #!/usr/local/env python #coding:utf-8 #Auto:Panwenbin #function: lock_file=open('fi

  • Python实现用户登录注册

    简单的Python代码:用户登录注册 利用业余时间,写了一个用户进行登录注册的代码,非常简单.主要实现的功能是: 1.可以进行用户登录,在用户进行登录之前,对用户名进行检查,查看是否是已经注册的用户,如果是已经注册的用户,则直接登录:如果是未注册的用户,需要进行注册才可以登录 2.用户名检查:用户名长度为8~18位,不在这个数字范围内的用户名不可以进行登录,字符不限 3.用户密码检查:密码长度为8~18位,不在这个范围内的用户名也是不可以进行注册的,字符不限(其实用户名和密码的长度都是可以自己改

  • Python 用户登录验证的小例子

    复制代码 代码如下: #!/usr/bin/python#coding=gbk class User:    def __init__(self,username,password,age,sex):        self.username=username        self.password=password        self.age=age        self.sex=sex def tell(self):        print 'UserContext:Name:%s

  • python实现得到当前登录用户信息的方法

    本文实例讲述了python实现得到当前登录用户信息的方法.分享给大家供大家参考,具体如下: 在linux 环境下,python 更多的被当做 替代 SHELL 的工具语言, 其实linux 中,本身就有很多命令是通过python扩展的,我想记录下一些常用的命令以及使用方式,以便以后查看. 第一部分:python得到得到当前登录用户信息 def get_current_user(): try: # pwd is unix only import pwd return pwd.getpwuid(os

  • Python实现的用户登录系统功能示例

    本文实例讲述了Python实现的用户登录系统功能.分享给大家供大家参考,具体如下: 有N,E,Q三个选择,若选择Q或者中断,则系统退出.若其他选项,则持续让用户选择. #!/usr/bin/env python db = {} def newuser(): prompt = 'login desired: ' while 1: name = raw_input(prompt) if db.has_key(name): prompt = 'name taken, try another: ' co

  • Python文件操作实战案例之用户登录

    目录 一.前言 二.案例:用户登录 1.案例分析 2.程序设计 2.1 main() 2.2 c_flag() 2.3 init() 2.4 print_login_menu() 2.5 user_select() 2.6 root_login() 2.7 user_register() 2.8 user_login() 3.功能演示 总结 一.前言 在上一小节,我们介绍了文件的基本操作以及数据交换的格式,为了巩固我们上一节文件操作的知识. 在这里我们做一个最基本的案例:用户登录 二.案例:用户

  • Java实战之实现用户登录

    一.前言 二.案例需求 1.编写login.html登录页面,username&password两个输入框 2.使用Druid数据库连接池技术,操作mysql,day14数据库中的user表 3.使用jdbcTemplate技术封装JDBC 4.登录成功跳转到SuccessServlet展示:登录成功!用户名,欢迎你 5.登录失败跳转到FailServlet展示:登录失败密码错误 三.开始第一步 首先创建项目,写html页面,配置文件,jar包 <!DOCTYPE html> <

  • Python自动化办公实战案例详解(Word、Excel、Pdf、Email邮件)

    目录 背景 实现过程 1)替换Word模板生成对应邀请函 2)将Word邀请函转化为Pdf格式 4)自动发送邮件 5)完整代码 总结 背景 想象一下,现在你有一份Word邀请函模板,然后你有一份客户列表,上面有客户的姓名.联系方式.邮箱等基本信息,然后你的老板现在需要替换邀请函模板中的姓名,然后将Word邀请函模板生成Pdf格式,之后编辑统一的邀请话术(邮件正文),再依次发送邀请函附件到客户邮箱,你会怎么做? 正常情况下,我们肯定是复制粘贴Excel表格中的客户姓名,之后挨个Word文档进行替换

  • python文件操作相关知识点总结整理

    本文汇总了python文件操作相关知识点.分享给大家供大家参考,具体如下: 总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:os.listdir() 函数用来删除一个文件:os.remove() 删除多个目录:os.removedirs(r"c:\python&q

  • Python文件操作的方法

    目录 1.文件的概念 1.1文件的概念和作用 1.2文件的存储方式 2.文件的基本操作 2.1操作文件的套路 2.2操作文件的函数/方法 2.3read方法--读取文件 2.4打开文件的方式 2.5按行读取文件内容 2.6文件读写案例--复制文件 小文件复制 大文件复制 2.7文件读写中的函数 3.文件/目录的常用管理操作 4.文本文件的编码方式 5.拓展:eval函数 目标: 文件的概念 文件的基本操作 文件/文件夹的常用操作 文本文件的编码方式 1.文件的概念 1.1文件的概念和作用 计算机

  • python 文件操作删除某行的实例

    使用continue跳过本次写循环就可以了 #文本内容 Yesterday when I was young 昨日当我年少轻狂 The tasting of life was sweet 生命的滋味是甜的 As rain upon my tongue tasting I lived by night and shunned the naked light of day tasting123 And only now I see how the time ran away tasting tast

  • Python 文件操作的详解及实例

    Python 文件操作的详解及实例 一.文件操作 1.对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧明. 白首为功名,旧山松竹老,阻归程. 欲将心事付瑶琴. 知音少,弦断有谁听. f = open('小重山') #打开文件 data=f.read()#获取文件内容 f.close() #关闭文件 注意:if in the win,hello文件是utf8保存的,打

  • python文件操作之目录遍历实例分析

    本文实例讲述了python文件操作之目录遍历的方法.分享给大家供大家参考.具体分析如下: Python的os模块,包含了普遍的操作系统功能,这里主要学习与路径相关的函数: os.listdir(dirname):列出dirname下的目录和文件 os.getcwd():获得当前工作目录 os.curdir:返回当前目录('.') os.chdir(dirname):改变工作目录到dirname os.path.isdir(name):判断name是不是一个目录,name不是目录就返回false

  • Python文件操作类操作实例详解

    本文讲述了Python文件操作类的操作实例,详细代码如下: #!/usr/bin/env python #!/usr/bin/env python #coding:utf-8 # Purpose: 文件操作类 #声明一个字符串文本 poem=''' Programming is fun测试 When the work is done if you wanna make your work also fun: use Python! ''' #创建一个file类的实例,模式可以为:只读模式('r'

  • Python文件操作基本流程代码实例

    文件操作之基本流程 #文本 近日,上市药企--浙江莎普爱思药业股份有限公司频遭质疑. 12月2日,一篇名为<一年卖出7.5亿的洗脑"神药",请放过中国老人>的文章称, 多位眼科医生并不认可莎普爱思滴眼液的"白内障防治功效".质疑者认为, 莎普爱思滴眼液是"假科普,真营销",通过广告误导患者. 针对质疑,莎普爱思3日晚发布的公告称, 0.5%苄达 赖氨酸滴眼液已于上世纪90年代通过了临床试验, 是一种安全的.有效的抗白内障药物.假的 #

随机推荐