实现功能如下
  • 用户输入密码,密码验证后登录成功
  • 用户登录成功后提示登录信息
  • 用户输入3次错误密码后锁定
# /usr/bin/env python
# -*- coding: utf-8 -*-
# Author:jenvid.yang
import getpass
import shutil
userspwd = {}
userssta = {}
luser = []
count = 0
usercontent = open('../config/users.inf', 'r')
for line in usercontent:
luser.append(line.rstrip('\n'))
usercontent.close()
pwdcontent = open('../config/users.pwd', 'r')
for line in pwdcontent:
key, value = line.rstrip('\n').split(":")
userspwd[key] = value
pwdcontent.close()
stacontent = open('../config/users.sta', 'r')
for line in stacontent:
key, value = line.rstrip('\n').rsplit(":")
userssta[key] = value
stacontent.close()
while count < 3:
username = input("pls input your name:")
password = getpass.getpass("pls input your password:")
judge_key = username in userssta.keys()
if judge_key and int(userssta[username]) == 3:
print("your passwod was locked,pls contact administartor")
break
elif judge_key and password == userspwd[username]:
for i in luser:
if username == i:
print("welcome login system", username)
exit(0)
else:
print("your username or password is invalid,pls reinput!")
count += 1
if count == 3 and username in userssta.keys():
print("your password was locked,pls contact administartor")
stacontent = open('../config/users.sta', 'r')
new_pwd = open('../config/users_new.sta','w')
for line in stacontent:
if username in line:
line = line.replace("", "")
new_pwd.write(line)
stacontent.close()
new_pwd.close()
shutil.move('../config/users_new.sta','../config/users.sta')
# cat users.pwd
root:redhat
admin:redhat
yzw:redhat
alex:redhat
# cat users.sta
root:
yzw:
alex:
admin:
# cat users.inf
root
admin
yzw
alex

Day1作业-模拟登录的更多相关文章

  1. day1作业:登录接口

    作业一:编写登陆接口 1.输入用户名和密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 思路: (1)用户输入用户名: (2)去锁定文件中验证用户名是否锁定: (3)去当前用户验证用户是否存在: ...

  2. day1 作业编写登录窗口

    作业一:编写登录接口 (1)输入用户名和密码: (2)认证成功后显示欢迎信息: (3)输错三次后锁定. 思路:我们知道,要想让程序记住之前输入多少次,锁定用户,那么可以使用数据库来保存用户的状态,然而 ...

  3. Day1作业要求

    Day1作业 作业需求 博客 模拟登录 三级菜单 博客地址 杨振伟Day1博客地址 模拟登录 1.程序说明 实现功能如下 用户输入密码,密码验证后登录成功 用户登录成功后提示登录信息 用户输入3次错误 ...

  4. PHP cURL 使用cookie 模拟登录

    cURL是什么 cURL: http://php.net/manual/zh/book.curl.php PHP 支持 Daniel Stenberg 创建的 libcurl 库,能够连接通讯各种服务 ...

  5. 【Python数据分析】Python模拟登录(一) requests.Session应用

    最近由于某些原因,需要用到Python模拟登录网站,但是以前对这块并不了解,而且目标网站的登录方法较为复杂, 所以一下卡在这里了,于是我决定从简单的模拟开始,逐渐深入地研究下这块. 注:本文仅为交流学 ...

  6. Android利用HttpURLConnection实现模拟登录

    最近在做一个APP,需要模拟登录教务处,之前曾经用HttpClient做过,点这里,但是发现最新的Android SDK已经不支持Httpclient了,所以只好在琢磨一下HttpURLConnect ...

  7. Python requests模拟登录

    Python requests模拟登录 #!/usr/bin/env python # encoding: UTF-8 import json import requests # 跟urllib,ur ...

  8. php中CURL实现模拟登录并采集数据

    在php中采集我们用的是简单的采集方式(例如file_get_contents)就无法做到了,但是如果想模拟登录用户并采集利用它就没办法了,我们可利用CURL函数来实现模拟登录并采集数据 这里要说一些 ...

  9. .NET微信模拟登录及{base_resp:{ret:-4,err_msg:nvalid referrer}}的解决办法

    12年的时候写了些关于微信开发的内容,当时看好这个东西,可惜当时腾讯开放的权限太少,之后的一年多时间没有太关注了. 现在又要重新开始微信开发的阵容了,微信只是个入口,微网站才是趋势. 我是个水货,所以 ...

随机推荐

  1. 几个 Cookie 操作例子的分析

    MDN 上提供了操作 Cookie 的若干个例子,也有一个简单的 cookie 框架,今天尝试分析一下,最后是 jquery-cookie 插件的分析. document.cookie 的操作例子 例 ...

  2. SpringMVC框架(一)

    SpringMVC最核心:DispatcherServlet SpringMVC环境搭建: 结构: 过程: 1.导包 2.声明SpringMVC核心Servlet:org.springframewor ...

  3. TargetType Mismatch

    TargetType Mismatch 环境:windowsphone 8,silerlight toolkit, 页面报TargeType Mismatch错误或者 length 0,是因为Syst ...

  4. C#仪器数据文件解析-XPS文件

    XPS为微软推出的类似于Adobe PDF的一种文件格式,个人认为XPS很好,但毕竟PDF已经被大家所熟知,因此XPS的使用很少,也少有仪器数据输出为该格式. XPS百度百科:https://baik ...

  5. extract-text-webpack-plugin 的使用及安装

    extract-text-webpack-plugin该插件的主要是为了抽离css样式,防止将样式打包在js中引起页面样式加载错乱的现象;首先我先来介绍下这个插件的安装方法: npm install ...

  6. css3制作网页中常见的小箭头

    /* css3三角形(向上 ▲) */ div.arrow-up { width:0px; height:0px; border-left:5px solid transparent;  /* 右透明 ...

  7. sqlDependency监控数据库数据变化,自动通知

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  8. WPF DataGrid 样式设置

    隔行换色,鼠标单击,悬浮样式都有,其具体效果如图 1 所示. 图 1 WPF DataGrid 样式设置效果图 其中: 界面设计代码下所示 ? + 查看代码 1 2 3 4 5 6 7 8 9 10 ...

  9. Scala 运算符和集合转换操作示例

    Scala是数据挖掘算法领域最有力的编程语言之一,语言本身是面向函数,这也符合了数据挖掘算法的常用场景:在原始数据集上应用一系列的变换,语言本身也对集合操作提供了众多强大的函数,本文将以List类型为 ...

  10. iOS四种多线程(swift和oc)

    在这篇文章中,我将为你整理一下 iOS 开发中几种多线程方案,以及其使用方法和注意事项.当然也会给出几种多线程的案例,在实际使用中感受它们的区别.还有一点需要说明的是,这篇文章将会使用 Swift 和 ...