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

当然,我可以为您提供“Python文件操作实战案例之用户登录”的完整攻略,过程中包含两条示例说明。

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

在Python中,我们使用文件操作来实现用户登录的功能。本文将详细介绍Python文件操作实战案例之用户登录的完整攻略,包括文件读写、加密解密等操作。

1. 创建用户文件

首先,我们创建一个用户文件,用于存储用户的账号和密码信息。可以使用文本文件来存储这些信息,每行一个用户,格式为username:password。下面是一个示例:

admin:123456
guest:abcdef

在以上示例中,我们创建了一个用户文件,包含两个用户adminguest,分别对应的密码是123abcdef

2. 用户登录

接下来,我们需要编写一个用户登录的函数,用于验证用户的账号和密码是否正确。可以使用文件读取操作来读取用户文件中的号和密码信息,然后使用加密解密操作来验证用户的输入信息。下面是一个例:

import hashlib

def login(username, password):
    with open('users.txt', 'r') as f:
        for line in f:
            line = line.strip()
            if not line:
                continue
            user, pwd = line.split(':')
            if user == username:
                md5 = hashlib.md5()
                md5.update(password.encode('utf-8'))
                if md5.hexdigest() == pwd:
                    return True
                else:
                    return False
        return False

在以上示例中,我们定义了一个login()函数,它接受两个参数usernamepassword,用于验证用户的账号和密码是否正确。首,我们使用open()函数打开用户文件users.txt,然后使用for循环逐行读取文件中的账号和密码信息。在行中,我们使用strip()函数去除空格和换行符,并使用split()函数将账号和密码分开。然后,我们使用if语句判断当前行是否为目标用户,如果是,则使用hashlib模块对用户输入的进行加密,并与文件中的密码进行比较。如果密码匹配,则返回True,否则返回False`。

3. 用户注册

除了用户登录外,我们还需要编写一个用户注册的函数,用于向用户文件中添加新用户。可以使用文件写入操作来实现这个功能下面是一个示例:

def register(username, password):
    with open('users.txt', 'a') as f:
        f.write(f'{username}:{password}\n')
`

在以上示例中,我们定义了一个`register()`函数,它接受两个参数`username`和`password`,用于向用户文件中添加新用户。首先,我们使用`open()`函数打开用户文件`users.txt`,并使用`'a`模式打开文件,表示以追加的方式写入文件。然后,我们将用户输入的账号和密码写入文件中。

### 4. 示例说明

下面是一个完整的示例,演示了何使用文件操作实现用户登录和注册的功能:

```python
import hashlib

def login(username, password):
    with open('users.txt', 'r') as f:
        for line in f:
            line = line.strip()
            if not line:
                continue
            user, pwd = line.split(':')
            if user == username:
                md5 = hashlib.md5()
                md5.update(password.encode('utf-8'))
                if md5.hexdigest() == pwd:
                    return True
                else:
                    return False
        return False

def register(username, password):
    with open('users.txt', 'a') as f:
        f.write(f'{username}:{password}\n')

if __name__ == '__main__':
    while True:
        choice = input('请选择操作(1.登录,2.注册,3.退出):')
        if choice == '1':
            username = input('请输入用户名:')
            password = input('请输入密码:')
            if login(username, password):
                print('登录成功!')
            else:
                print('用户名或密码错误!')
        elif choice == '2':
            username = input('请输入用户名:')
            password = input('请输入密码:')
            register(username, password)
            print('注册成功!')
        elif choice == '3':
            break
        else:
            print('无效的操作!')

在以上示例中,我们使用while循环来不断接受用户的输入,根据用户的选择调用不同的函数。如果用户选择登录,则调用login()函数验证用户的账号和密码是否正确;如果用户选择注册调用register()函数向用户文件中添加新用户。如果用户选择退出,则程序。

示例说明一

import hashlib

def login(username, password):
    with open('users.txt', 'r') as f:
        for line in f:
            line = line.strip()
            if not line:
                continue
            user, pwd = line.split(':')
            if user == username:
                md5 = hashlib.md5()
                md5.update(password.encode('utf-8'))
                if md5.hexdigest() == pwd:
                    return True
                else:
                    return False
        return False

if __name__ == '__main__':
    username = input('请输入用户名:')
    password = input('请输入密码:')
    if login(username, password):
        print('登录成功!')
    else:
        print('用户名或密码错误!')

在以上示例中,我们定义了一个login()函数,用于验证用户的账号和密码是否正确。然后,我们使用input()函数接受用户的输入,并调用login()函数验证用户的账号和密码是否正确。如果验证成功,则输出登录成功!,否则输出用户名或密码错误!

示例说明二

def register(username, password):
    with open('users.txt',a') as f:
        f.write(f'{username}:{password}\n')

if __name__ == '__main__':
    username = input('请输入用户名:')
    password = input('请输入密码:')
    register(username, password)
    print('注册成功!')

在以上示例中,我们定义了一个register()函数,用于向用户文件中添加新用户。然后,我们使用input()接受用户的输入,并调用register()函数向用户文件中添加新用户如果添加成功,则输出注册成功!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python文件操作实战案例之用户登录 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • python爬虫之requests库的使用详解

    Python爬虫之Requests库的使用详解 什么是Requests库 Requests是一款Python第三方库,用于发送HTTP请求。它十分简单易用,是Python中最常见的HTTP客户端库之一。 Requests库安装方法 使用pip安装Requests库: pip install requests 安装成功后,导入Requests库: import…

    python 2023年5月14日
    00
  • Python中的for循环详情

    Python中的for循环语句用于对一个序列(如列表、元组或字符串)进行遍历循环,可以方便地对序列中的每个元素进行操作和处理。 基本语法 for循环语句的基本语法如下: for 变量 in 序列: # 循环体 其中,变量指的是用于遍历序列中元素的变量名,可以任意命名;序列指的是需要遍历的列表、元组、字符串、字典等数据类型;循环体指的是需要执行的操作。 在循环…

    python 2023年5月13日
    00
  • 使用python解析xml成对应的html示例分享

    使用Python解析XML成对应的HTML示例分享 在本文中,我们将介绍如何使用Python解析XML文件,并将其转换为对应的HTML文件。我们将使用Python内置的xml.etree.ElementTree模块来解析XML文件,并使用字符串拼接的方式生成HTML文件。 步骤1:解析XML文件 在使用Python解析XML文件之前,我们需要先安装xml.e…

    python 2023年5月15日
    00
  • 详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数

    详解Python3中hasattr()、getattr()、setattr()、delattr()函数及示例代码 在Python3中,有四个内置函数可以用于操作对象的属性:hasattr()、getattr()、setattr()和delattr()。这些函数可以帮助我们检查、获取、设置和删除对象的属性。本文将详细介绍这些函数的用法,并提供示例代码。 has…

    python 2023年5月15日
    00
  • 浅谈pytorch中为什么要用 zero_grad() 将梯度清零

    下面是详细讲解pytorch中为什么要用zero_grad()将梯度清零的攻略。 什么是pytorch中的梯度? 在深度学习中,我们通常使用反向传播算法来计算模型的梯度。在pytorch中,模型的梯度保存在参数的grad属性中。 例如,以下代码创建了一个简单的网络,并计算了模型参数的梯度。 import torch import torch.nn as nn…

    python 2023年5月13日
    00
  • python包实现 retrying 重复回调操作

    以下是“Python包实现retrying重复回调操作”的完整攻略,其中包括了retrying包的安装和使用方法、重试的参数设置、以及两个示例说明。 Python包实现retrying重复回调操作 在Python中,我们可以使用retrying包来实现重复回调操作。retry包提供了一种简单的方法来重试失败的操作,例如网络请求或数据库查询。以下是retryi…

    python 2023年5月13日
    00
  • python调用excel_vba的两种实现方式

    下面是详细的讲解和示例说明: Python调用Excel VBA的两种实现方式 在Python程序中,我们有两种方式来调用Excel VBA程序,分别是使用win32com.client模块和pywin32模块,下面我们将分别进行详细讲解和实例演示。 使用win32com.client模块调用Excel VBA win32com.client模块是Pytho…

    python 2023年5月13日
    00
  • python占位符输入方式实例

    针对“python占位符输入方式实例”的完整攻略,我来为你进行详细讲解。 1. 什么是占位符? 在Python中,占位符是一个特殊的符号或字符串,表示待填充的部分。占位符通常会被其他变量或数据所替换,使程序可以动态地生成数据。在Python中,常用的占位符包括 %s,%d,%f等。其中,%s用于字符串,%d用于整数,%f用于浮点数。 2. %占位符输入方式示…

    python 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部