python-登录-注册-修改密码
该脚本实现了,登录,注册,修改密码功能。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
#pangguoping import os
def login(username,password):
f = open("db",'r')
for line in f:
#print(line,type(line))
line_list = line.strip().split("|")
#print(line_list,type(line_list))
if line_list[0] == username and line_list[1] == password:
return True
return False def register(username,password):
f = open("db",'a')
temp = "\n" + username + "|" + password
f.write(temp)
f.close()
return True
def change_pwd(username):
new_pwd = input('请输入新的密码:')
write_flag = False with open('db', 'r', encoding='utf-8') as old_file, open('db_new', 'w', encoding='utf-8') as new_file:
for line in old_file:
if username == line.strip().split('|')[0] and new_pwd != line.strip().split('|')[1]:
line_list = line.strip().split('|') #把字符串分割成列表
#print(line_list, type(line_list)) # 输出['admin', '789'] <class 'list'>
line_list[0] = username
line_list[1] = new_pwd
#new_line = line_list[0] + '|' + line_list[1]
#print(new_line,type(new_line)) #输出 admin|123 类型是str
new_line = '|'.join(line_list)
new_file.write('%s\n' % new_line) write_flag = True
else:
pass
#new_file.write(line)
#os.remove('db_new')
if write_flag:
os.rename('db', 'db.bak')
os.rename('db_new', 'db')
os.remove('db.bak')
print('账号%s,密码修改成功。' % username)
else:
print('新密码与旧密码不能相同,请重新输入!')
os.remove('db_new') return False def main():
t = input("1:登录:\n2:注册:\n3,修改信息:\n请输入您的操作:")
if t == "":
user = input("请输入用户名:")
pwd = input("请输入密码:")
result = login(user,pwd)
#print(result)
if result:
print("登录成功")
else:
print("登录失败")
elif t == "":
user = input("请输入用户名:")
pwd = input("请输入密码:")
result = register(user,pwd)
if result:
print('注册成功')
else:
pass
elif t == "":
user = input("请输入用户名:")
pwd = input("请输入密码:")
result = login(user,pwd)
if result:
r= change_pwd(user)
#print(r)
else:
print("用户名密码错误,请重新输入!") main()
python-登录-注册-修改密码的更多相关文章
- node+mysql+express实现登录/注册/修改密码/删除用户 接口
实现用户的注册.登录.修改密码.删除用户操作 用到的数据库:nodecms:表:user 目录结构: db目录下存放数据库操作语句: userSQL.js 用户有关的操作语句 router目录 接口路 ...
- Web实现数据库链接的登录注册修改密码功能
/** * Copyright (C), 2017-2017 * FileName: User * Author: ichimoku * Date: 2017/12/5 14:31 * version ...
- Email接收验证码,以实现登录/注册/修改密码
要求 1)实现Email形式的注册功能和相应的登录功能:2)实现忘记密码时的密码找回功能:3)存在数据库中的密码不能以明文形式存放,即建议在浏览器端发送请求前,调用js代码对用户的密码做md5加密 分 ...
- Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等
http://blog.csdn.net/h7870181/article/details/8653865 以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后 ...
- openfire Android学习(一)----实现用户注册、登录、修改密码和注销等
以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后台服务器代码就比较复杂,对于我这新手来讲就比较难了.后来在网上看到用openfire做服务器,利用强大的Sm ...
- selenium(python)登录时账号密码错误提示语
selenium(python)登录时账号密码错误提示语的获取 可以用text
- 测试点常用用例设计(登录、修改密码、输入框、上传视频、XSS、URL篡改)
1.无效-视频文件测试点: 视频大小过大 视频大小过小 视频名称过长 视频名称包含特殊字符 视频名称包含中文.中英混合 视频文件格式错误 视频文件重复性上传 2.有效-视频文件测试点: 选择符合要求的 ...
- 使用手机登录OWA修改密码的问题
最近发现使用手机端登录OWA,安卓手机是可以修改密码的,如图1,但是iPhone就不成,safari和第三方都不可以,如图二. 图一 图二
- Mysql 免密码登录,修改密码及忘记密码操作
----免密码登陆 方式一 my.cnf增加[client]标签 [client] user="root" password="你的密码" 单对定义不同的客户端 ...
随机推荐
- jquery之营销系统(补偿记录)
var appPath = getAppPath(); $(function(){ $("#opreateHtml").window("close"); $(& ...
- js获得url的参数
网上找的一段代码,非常好用,现在难以找到原作者,但是非常感谢!/** * 获取当前URL参数值 * @param name 参数名称 * @return 参数值 */ function ...
- DateTime对象反序列化的那些事
今天在Android的Json反序列化过程中,Date类型无法转化成自己想要的格式,鉴于之前在C#的反序列话中也遇到过这个问题,解决的同时,顺手做个总结,供自己及需要的人日后查阅. 将Da ...
- cell高度自动适应文章内容
效果: 描述:表视图中生成多个不同的cell,cell的高度跟文字内容的多少有关 要求:需要自己在网上下载一个plis文件,然后修改两个标题 一 : 创建工程文件UIAutomaticCellHeig ...
- C#字符串的比较
Console.WriteLine("输入字符1"); string n1 = Console.ReadLine(); Console.WriteLine("输入字符2& ...
- html的form元素
<input type="email"><br> <input type="date"><br> <inp ...
- struct可以拥有class般的构造函数
struct A { int a, b; A(int x, int y) :a(x), b(y){} }; int main() { A a(1, 2); cout << a.a < ...
- 深入剖析C/C++函数的参数传递机制
2014-07-29 20:16 深入剖析C/C++函数的参数传递机制 C语言的函数入口参数,可以使用值传递和指针传递方式,C++又多了引用(reference)传递方式.引用传递方式在使用上类 ...
- jQuery实现的全选、反选和不选功能
适用于网页多选后需要进行批量操作的场景(如批量删除等).如有问题希望大家可以指正.谢谢~~ HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮 ...
- JavaScript 系列笔记(一)数据类型
关于JS的数据类型 简单类型有五种:Undifined, Null, Boolean, Number, String 复杂类型有一种:Object 通过typeof 操作符来获取数据类型,此操作符返回 ...