Python实现基于文件存储的用户登录与注册功能

落日邮差
落日邮差
发布时间:2026-10-13| 4人浏览过
原创

本文详细介绍如何使用Python实现基于本地文件的用户登录与注册功能。通过封装文件读取与写入方法,结合面向对象编程思想,实现了用户信息的持久化存储与验证逻辑。代码包含账号密码的输入处理、文件数据解析及登录状态判断,适合Python初学者理解文件IO与基础业务逻辑的结合应用。

Python文件读写与登录注册实现

在Python开发中,利用文件读写功能来实现简单的用户登录与注册系统是常见的入门实践。具体的实现逻辑与代码结构如下所示:


#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Author: zhw
#读取文件中的内容
def open_file(filename ,file_type , *args):
  #读取文件中的数据
  if file_type == 'r':
    flie_list = []
    with open(filename,file_type) as sub_all:
      for file_line in sub_all:
        flie_list.append(file_line.strip())
      #print(flie_list)
      return flie_list
  #读取文件中的用户号
  elif file_type == 'ru':
    flie_list = []
    with open(filename,'r') as sub_all:
      for file_line in sub_all:
        file_l = file_line.split('|')
        user_no = file_l[0]
        flie_list.append(user_no.strip())
      #print(flie_list)
      return flie_list
  #写入文件
  elif file_type == 'a+':
    data = args[0]
    with open(filename, file_type) as sub_all:
      sub_all.write(data +"\n")
  else:
    print('您输入的格式没有,请检查')
class User(object):
  def __init__(self, user_no, user_pw):
    self.user_no = user_no
    self.user_pw = user_pw
    self.file = 'login.log'
  @property
  #检查账号是否已经存在
  def check_user(self):
    flie_list = open_file(self.file, 'ru')
    if self.user_no in flie_list:
      return '1'
    else:
      return '0'
  #注册账号
  def regist(self):
    user_info = '%s|%s' % (self.user_no, self.user_pw)
    open_file(self.file, 'a+',user_info)
    #return'注册成功'
  #账号登录
  def login(self):
    flie_list = open_file(self.file, 'r')
    user_info = '%s|%s' % (self.user_no, self.user_pw)
    if user_info in flie_list:
      return '1'
    else:
      return '0'

def return_more(args):
  pass
#循环验证登录,循环注册账号
while True:
  print('请选择\n '
     '1. 注册\n'
     '2. 登录\n'
     '3. 退出')
  choose = input('请选择').strip()
  if choose == '1':
    for i in range(3):
      user_no = input('请输入注册账号:').strip()
      user_pw = ''
      user = User(user_no,user_pw)
      #检查用户号是否存在
      return_more = user.check_user
      if return_more == '0':
        user_pw = input('请输入注册密码:').strip()
        user = User(user_no, user_pw)
        return_more = user.regist()
        print(return_more)
        break
      else:
        print('您输入的账号已经存在,请选择其他账号')
    #print('您输入的错误次数太多,已退出!')
  elif choose == '2':
     for i in range(3):
       user_no = input('请输入登录账号:').strip()
       user_pw = input('请输入登录密码').strip()
       user = User(user_no, user_pw)
       #用户登录
       return_mk = user.login()
       if return_mk =='0':
         print("登录失败,请重新输入")
       else:
         print('登录成功')
         break
  elif choose == '3':
    break
  else:
    print('输入序号有无,请重新输入')

总结

上述内容展示了利用Python进行文件读取并实现登录注册功能的核心代码。希望这段介绍能对读者有所帮助,若有任何疑问欢迎留言,小编会及时回复。感谢大家对本站的支持!如果您觉得本文有价值,欢迎转载,请注明出处,谢谢。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。