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

yizhihongxing

当然,我可以为您提供“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 Django 封装分页成通用的模块详解

    在Django中,我们可以使用分页功能来处理大量数据。为了方便重复使用,我们可以将分页功能封装成通用的模块。以下是一个详细的攻略,包含了封装分页功能的步骤和示例。 1. 安装Django 在开始之前,我们需要安装Django。可以使用以下命令安装Django: pip install Django 2. 创建分页模块 我们可以创建一个名为pagination…

    python 2023年5月15日
    00
  • Python对Excel按列值筛选并拆分表格到多个文件的代码

    我来详细讲解一下Python对Excel按列值筛选并拆分表格到多个文件的代码的完整实例教程。 示例说明 在本教程中,我们将以一个实例来说明如何使用Python对Excel表格按列值进行筛选并拆分成多个文件。假设我们有一张Excel表格,其中包含了两列数据:日期和销售额。现在我们需要按照日期来筛选表格,并将符合条件的行拆分成多个Excel文件。 我们的示例Ex…

    python 2023年5月13日
    00
  • Python使用sorted对字典的key或value排序

    Python中使用sorted函数可以对字典的key或value进行排序。下面就来详细讲解一下如何使用sorted函数对字典进行排序。 字典排序方法 按key排序 字典的sorted排序方法默认按照字典的key进行排序,用法如下: dict = {‘a’: 2, ‘d’: 1, ‘c’: 3} print(sorted(dict.items())) 结果为:…

    python 2023年5月13日
    00
  • python中 * 的用法详解

    下面是关于“Python中 * 的用法详解”的完整攻略。 一、* 的作为乘法运算符 在Python中,* 可以作为乘法运算符使用,用来进行两个数的乘法运算。示例代码如下: a = 3 b = 4 c = a * b # c的值为12 二、* 的作为可变参数 在Python函数定义过程中,可以使用*来代表可变参数。表示函数可以接受任意多个参数。 def fun…

    python 2023年5月31日
    00
  • Python利用re模块实现简易分词(tokenization)

    Python利用re模块实现简易分词(tokenization) 在自然语言处理中,分词是一个非常重要的任务。分词的目的是将一段文本分成若干个词语,以便后续的处理。在本文中,我们将介绍如何使用Python的re模块实现简易分词。 re模块简介 re模块是Python中用于正则表达式操作的模块。正则表达式是一种用于匹配字符串的模式,可以用于字符串的搜索、替换、…

    python 2023年5月14日
    00
  • Python快速查找list中相同部分的方法

    以下是“Python快速查找list中相同部分的方法”的完整攻略。 1. 问题描述 在Python中,有时候需要查找多个List中相同元素。例如,我们有两个List,分别为list1和list2,它们分别包含了一些元素。现在,我们需要出这两个List中相同的元素。那么,如何快速查找list中相同部分的方法呢? 2. 解决案 方法1:使用set()函数 在Py…

    python 2023年5月13日
    00
  • Python 使用input同时输入多个数的操作

    当我们需要输入多个数的时候,可以使用Python的input()函数结合字符串分割操作来实现。下面是具体的操作步骤: 使用input()函数接收一个字符串信息,提示用户输入多个数,并且使用空格隔开。 input_str = input("请使用空格隔开输入多个数:") 利用字符串的split()函数将输入的字符串数据转化为一个数值列表(l…

    python 2023年5月18日
    00
  • 用Python实现协同过滤的教程

    下面我将详细讲解“用Python实现协同过滤的教程”的完整攻略,共分为以下几个步骤: 步骤1. 数据收集和预处理 在这一步骤中,我们需要准备一份用户对商品打分的数据集。这个数据集可以包含多个用户对多个商品的评分。一般情况下,我们很难收集到完整的数据,所以我们需要进行一些预处理。 我们可以使用pandas库来读取csv格式的数据集,然后删除其中的空值和重复值。…

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