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函数参数类型及排序原理总结

    Python函数参数类型及排序原理总结 在Python中,函数可以接受多个参数,这些参数可以有默认值,也可以不指定顺序。本文将总结Python函数参数的类型及其排序原理,以帮助读者更好地理解Python语言。 Python函数参数类型 默认参数 默认参数允许函数在不传递任何参数的情况下运行,也可以在函数调用时进行覆盖。默认参数在函数定义期间分配,并保留在函数…

    python 2023年6月5日
    00
  • python接口测试返回数据为字典取值方式

    下面是Python接口测试返回数据为字典取值方式的攻略: 1. 什么是字典 字典是Python语言中内置的数据类型之一,通过一些键值对(key-value)的方式来存储和组织数据。字典中的键是唯一的,对应的值可以是不唯一的,并且可以是任何数据类型。字典的定义方式为用大括号{}包括起来,键和值之间用冒号:分隔,不同的键值对之间用逗号,分隔。例如: dict1 …

    python 2023年5月13日
    00
  • Python中的运算符优先级-PEMDAS

    【问题标题】:Operator precedence in Python -PEMDASPython中的运算符优先级-PEMDAS 【发布时间】:2023-04-01 14:27:02 【问题描述】: 我在 PEMDAS 之后读到了关于 python 的信息,即乘法优先于除法。 我运行了以下脚本 print 6*2/1*2 因此,python 应该将其解释为…

    Python开发 2023年4月8日
    00
  • 利用Python实现翻译HTML中的文本字符串

    在Python中,我们可以使用BeautifulSoup库和Googletrans库来翻译HTML中的文本字符串。本文将介绍如何基于Python实现翻译HTML中的文本字符串的过程解析。我们将提供两个示例,以帮助读者更好理解如何实现这个目标。 步骤1:安装必要的库 在使用Python程序翻译HTML中的文本字符串之前,我们需要安装必要的库。我们使用以下库: …

    python 2023年5月15日
    00
  • 解决pandas read_csv 读取中文列标题文件报错的问题

    当我们使用Pandas的read_csv方法读取包含中文列标题的csv文件时,有时会遇到报错的问题。针对这个问题,本文提供一些解决方法。 问题描述 当我们使用以下代码尝试读取包含中文列标题的csv文件时: df = pd.read_csv(‘filename.csv’, encoding=’utf-8′) 有时会遇到以下报错: UnicodeDecodeEr…

    python 2023年5月13日
    00
  • Python retrying 重试机制的使用方法

    Python retrying 重试机制的使用方法 在Python中,我们可以使用retrying库来实现重试机制。retrying库提供了一种简单的方法来重试失败的函数调用,以便在出现错误时自动重试。本文将介绍Python retrying 重试机制的使用方法,包括安装retrying库、使用retrying库的基本语法、使用retrying库的高级语法、…

    python 2023年5月13日
    00
  • Python Tkinter 简单登录界面的实现

    一、Python Tkinter 简单登录界面的实现 在Python中,可以通过Tkinter库来实现简单的GUI界面。下面以实现简单的登录界面为例进行讲解,并对实现过程进行详细讲解。 二、界面实现 界面实现主要分为两个部分:登录窗口的设计和登录按钮事件的实现。 登录窗口的设计: 导入Tkinter库 from tkinter import * 创建窗口对象…

    python 2023年6月13日
    00
  • python统计多维数组的行数和列数实例

    下面是关于“Python统计多维数组的行数和列数实例”的完整攻略。 一、需求说明 在进行数据分析或者机器学习时,我们常常需要统计多维数组的行数和列数,以便对数据进行分析和处理。本文将以Python实现统计多维数组的行数和列数为例,为大家提供详细的攻略。 二、实现过程 1. 使用numpy库求解行数和列数 在Python中,可以使用numpy库中的shape方…

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