该脚本实现了,登录,注册,修改密码功能。

#!/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-登录-注册-修改密码的更多相关文章

  1. node+mysql+express实现登录/注册/修改密码/删除用户 接口

    实现用户的注册.登录.修改密码.删除用户操作 用到的数据库:nodecms:表:user 目录结构: db目录下存放数据库操作语句: userSQL.js 用户有关的操作语句 router目录 接口路 ...

  2. Web实现数据库链接的登录注册修改密码功能

    /** * Copyright (C), 2017-2017 * FileName: User * Author: ichimoku * Date: 2017/12/5 14:31 * version ...

  3. Email接收验证码,以实现登录/注册/修改密码

    要求 1)实现Email形式的注册功能和相应的登录功能:2)实现忘记密码时的密码找回功能:3)存在数据库中的密码不能以明文形式存放,即建议在浏览器端发送请求前,调用js代码对用户的密码做md5加密 分 ...

  4. Android基于XMPP Smack Openfire下学习开发IM(一)实现用户注册、登录、修改密码和注销等

    http://blog.csdn.net/h7870181/article/details/8653865 以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后 ...

  5. openfire Android学习(一)----实现用户注册、登录、修改密码和注销等

    以前学习过用Scoket 建立聊天,简单的建立聊天是没问题的,但如果要实现多人复杂的聊天,后台服务器代码就比较复杂,对于我这新手来讲就比较难了.后来在网上看到用openfire做服务器,利用强大的Sm ...

  6. selenium(python)登录时账号密码错误提示语

    selenium(python)登录时账号密码错误提示语的获取 可以用text

  7. 测试点常用用例设计(登录、修改密码、输入框、上传视频、XSS、URL篡改)

    1.无效-视频文件测试点: 视频大小过大 视频大小过小 视频名称过长 视频名称包含特殊字符 视频名称包含中文.中英混合 视频文件格式错误 视频文件重复性上传 2.有效-视频文件测试点: 选择符合要求的 ...

  8. 使用手机登录OWA修改密码的问题

    最近发现使用手机端登录OWA,安卓手机是可以修改密码的,如图1,但是iPhone就不成,safari和第三方都不可以,如图二. 图一 图二

  9. Mysql 免密码登录,修改密码及忘记密码操作

    ----免密码登陆 方式一 my.cnf增加[client]标签 [client] user="root" password="你的密码" 单对定义不同的客户端 ...

随机推荐

  1. jquery之营销系统(补偿记录)

    var appPath = getAppPath(); $(function(){ $("#opreateHtml").window("close"); $(& ...

  2. js获得url的参数

    网上找的一段代码,非常好用,现在难以找到原作者,但是非常感谢!/**   * 获取当前URL参数值  * @param name  参数名称  * @return  参数值   */ function ...

  3. DateTime对象反序列化的那些事

    今天在Android的Json反序列化过程中,Date类型无法转化成自己想要的格式,鉴于之前在C#的反序列话中也遇到过这个问题,解决的同时,顺手做个总结,供自己及需要的人日后查阅.       将Da ...

  4. cell高度自动适应文章内容

    效果: 描述:表视图中生成多个不同的cell,cell的高度跟文字内容的多少有关 要求:需要自己在网上下载一个plis文件,然后修改两个标题 一 : 创建工程文件UIAutomaticCellHeig ...

  5. C#字符串的比较

    Console.WriteLine("输入字符1"); string n1 = Console.ReadLine(); Console.WriteLine("输入字符2& ...

  6. html的form元素

    <input type="email"><br> <input type="date"><br> <inp ...

  7. 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 < ...

  8. 深入剖析C/C++函数的参数传递机制

    2014-07-29 20:16 深入剖析C/C++函数的参数传递机制    C语言的函数入口参数,可以使用值传递和指针传递方式,C++又多了引用(reference)传递方式.引用传递方式在使用上类 ...

  9. jQuery实现的全选、反选和不选功能

    适用于网页多选后需要进行批量操作的场景(如批量删除等).如有问题希望大家可以指正.谢谢~~ HTML 我们的页面上有一个歌曲列表,列出多行歌曲名称,并匹配复选框供用户选择,并且在列表下方有一排操作按钮 ...

  10. JavaScript 系列笔记(一)数据类型

    关于JS的数据类型 简单类型有五种:Undifined, Null, Boolean, Number, String 复杂类型有一种:Object 通过typeof 操作符来获取数据类型,此操作符返回 ...