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编码/文件读取/多线程
Python编码/文件读取/多线程 个人笔记~~记录才有成长 编码/文件读取/多线程 编码 常用的一般是gbk.utf-8,而在python中字符串一般是用Unicode来操作,这样才能按照单个字 ...
- python大文件读取
python大文件读取 https://stackoverflow.com/questions/8009882/how-to-read-a-large-file-line-by-line-in-pyt ...
- Python: 读文件,写文件
读写文件是最常见的IO操作.Python内置了读写文件的函数. 读写文件前,我们先了解一下,在磁盘上读写文件的功能都是有操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求 ...
- python .dcm文件读取,并转化为.jpg格式
.dcm文件是DICOM(Digital Imaging and Communications in Medicine)即医学数字成像和通信中记录医学图像和相关信息的文件,在用于医学图像处理的时候我们 ...
- python 用装饰器写登录
# 1.编写装饰器,为多个函数加上认证的功能(用户的账号密码来源于文件), # 要求登录成功一次,后续的函数都无需再输入用户名和密码 # FLAG = False # def login(func): ...
- 微信小程序开发:python+sanic 实现小程序登录注册
开发微信小程序时,接入小程序的授权登录可以快速实现用户注册登录的步骤,是快速建立用户体系的重要一步.这篇文章将介绍 python + sanic + 微信小程序实现用户快速注册登录全栈方案. 微信小程 ...
- Python txt文件读取写入字典的方法(json、eval)
link:https://blog.csdn.net/li532331251/article/details/78203438 一.使用json转换方法 1.字典写入txt import json d ...
- python tips:文件读取——换行符的问题
问题:在windows系统中,换行的符号是'\r\n'.python在读文件的时候为了系统兼容,会默认把'\r','n','\r\n'都视作换行.但是在windows文件中,可能在同一行中同时存在'\ ...
- 用python实现文件读取和内容替换
infile = open("D:/test.txt", "r") #打开文件 outfile = open("D:/pp2.txt", & ...
随机推荐
- csps模拟测试74梦境,玩具,飘雪圣域题解
题面:https://www.cnblogs.com/Juve/articles/11679226.html 梦境: 其实还是挺水的,排序错了过不了样例,打了个二分图匹配就跑了 #include< ...
- Django 操作Cookie与Session
目录 Cookie Session Django中操作Cookie 基本操作 基于cookie的登录装饰器 Django中操作Session 基本操作 Session流程解析 基于session的登录 ...
- ros Python找不到msg包的问题解决办法
https://answers.ros.org/question/113671/catkin-package-cannot-find-own-message-type-python/ 原因是因为.py ...
- struts2文件上传(多文件)文件下载
一 文件上传 1.环境要求 commons-fileupload-xxx.jar commons-io-xxx.jar 2.准备jsp页面 单 <%@ page language="j ...
- 转载:Linux 安装Java
1.到官网下载 jdk-8u131-linux-x64.tar.gz 官网地址:http://www.Oracle.com/technetwork/java/javase/downloads/jdk8 ...
- boost 字符串大小写转换
示例代码如下: #include <boost/algorithm/algorithm.hpp> #include <iostream> using namespace std ...
- 微信小程序发送手机验证码---倒计时
var currentTime = 59 //倒计时的事件(单位:s)var interval = null //倒计时函数 Page({ data: { time:59 //倒计时 }, onLoa ...
- JEECMS自定义标签
查看JEECMS的源代码发现开发者版本还没有类似现成的统计标签,一种解决的办法是使用现有的JEECMS标签,像这样Struts( [@cms_content_list channel=id]${tag ...
- DP学习之路(1) 01背包
动态规划是算法中一门很重要的思想,其通过对每一步的假设规划,不停的寻找最优最有利的解决方案,然后一步一步求解出来. 而01背包是其中最基本的一种dp思想,其题目一般为给定一个容量为V的背包,然后有n件 ...
- java 在线拆分 word文档采用什么技术比较好?
在Java项目开发中,偶尔会遇到通过程序动态拆分word文档的需求,由于Java本身不能操作Word文档,在网上也都是讨论如何动态合并word,所以这个需求实现起来相当困难,下面就将近期对于Word文 ...