import os                                                                 # 导入python自带库的模块
import sys # 导入python自带库的模块
import getpass # 导入python自带库的模块
lock_file = 'E:account_lock.txt' # 定义是否锁定状态的变量
user_file = 'E:account.txt' # 定义账号密码变量文件
u = 0 # 循环初始化
while u < 3:
name = input("请输入用户名:") # 用input 给name赋值
lock_file = open('E:account_lock.txt','r+') # 打开锁定文件,权限是读取更新
lock_list = lock_file.readlines()
for lock_line in lock_list:
lock_line = lock_line.strip('\n') # 使用.strip()的方法去点换行符
if name == lock_line:
print('用户 %s 已经锁定,请联系您的系统管理员' % name)
sys.exit(1)
user_file = open('E:account.txt','r') # 打开account文件,权限是读取更新
user_list = user_file.readlines() # 使用.readlines的方法逐行读取account文件
for user_line in user_list: # 使用for循环读取account的内容
(user,passwd) = user_line.strip('\n').split() # 用户名密码输入次数超过3次的用户添加到account_lock文件中
if name == user:
j = 0
while j < 3:
password= getpass.getpass('请输入密码')
if password == passwd:
print('欢迎登录管理平台,用户%s' %name)
sys.exit(0)
else:
if j != 2:
print('用户%s密码错误,请重新输入,还有%d次机会'%(name,2 -j))
j += 1
else:
lock_file.write(name + '\n')
sys.exit('用户 %s 达到最大登录次数,将被锁定并退出' % name)
else:
pass
else:
if u != 2: #i=2时,是最后一次机会,不用在提示还剩余0次机会了
print('用户%s 不存在,请重新输入,还有%d 次机会' %(name,2 - u))
u += 1
else:
sys.exit('因为您的错误输入,程序已经退出,请重新运行')
lock_file.close()
user_file.close()

python 3.x 循环读取文件用户登录的更多相关文章

  1. python 按每行读取文件怎么去掉换行符

    python按每行读取文件后,会在每行末尾带上换行符,这样非常不方便后续业务处理逻辑,需要去掉每行的换行符,怎么去掉呢?看下面的案例: >>> a = "hello wor ...

  2. Halcon中循环读取文件的实现以及数字与字符的转换

    在循环读取文件的位置时,常用到数字与字符的转换. 数字与字符的转换 将字符转换为数字 tuple_number(StringImageIndex,IntImageIndex)` 1 2 1 2 将数字 ...

  3. python入门:最基本的用户登录

    #! usr/bin/env python # -*- coding: utf-8 -*- #最基本的用户登录 import getpass usre = input("username:& ...

  4. 循环读取文件夹中的图片matlab代码

    参考:http://blog.csdn.net/guoxiaojie_415/article/details/21317323:http://blog.csdn.net/qikaihuting/art ...

  5. Day16_95_IO_循环读取文件字节流read()方法(四)

    循环读取文件字节流read()方法(四) 使用 int read(byte[] bytes) 循环读取字节流数据 import java.io.FileInputStream; import java ...

  6. Day16_94_IO_循环读取文件字节流read()方法(二)

    循环读取文件字节流read()方法 通过read()循环读取数据,但是read()每次都只能读取一个字节,频繁读取磁盘对磁盘有伤害,且效率低. import java.io.FileInputStre ...

  7. python numpy实现多次循环读取文件 等间隔过滤数据

    numpy的np.fromfile会出现如下的问题,只能一次性读取文件的内容,不能追加读取,连续两次的np.fromfile读到的东西一样 如果数据文件太大(几个G或以上)不能一次性全读进去,需要追加 ...

  8. python入门:最基本的用户登录用户登录,三次错误机会

    #!/usr/bin/env python # -*- coding:utf-8 -*- #用户登录,三次错误机会 """ 导入getpass,给x赋值为1,while真 ...

  9. Matlab如何循环读取文件

    循环读取图片第一种方法①List =dir('*.jpg'); %如需其它图片格式支持,可以自己[重载dir()]函数,实现查找所有图片文件的功能,%如果图片是其它路径,可以用 ["路径&q ...

随机推荐

  1. angularjs -- 路由监听

    前几天,项目在做一个功能时需要在页面切换之前关闭正在执行的函数.尝试了几种方式都不行,最后想到既然angularjs是通过理由切换页面,那就在路由上面做文章吧.AngularJS在路由发生改变时,可以 ...

  2. UserInfoActivity用户图像修改和退出登录

    @OnClick(R.id.btn_user_logout) public void logout(View view){//"退出登录"button的回调方法 //1.将保存在s ...

  3. node(6)angular介绍

    一.angular 的介绍 AngularJS[1]  诞生于2009年,由Misko Hevery 等人创建,后为Google所收购.是一款优秀的前端JS框架,已经被用于Google的多款产品当中. ...

  4. java 中解析json步骤

    一.   JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧. Json建构于两种结构:     1.“名称/值”对的集合(A collection ...

  5. django新建项目,连接mysql数据库

    安装django,进入Django目录,运行 python setup.py install 在workplace目录下新建一个名为site01的项目: cd workplacedjango-admi ...

  6. C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数

    各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 输出: 解释: 各位相加的过程为: + = , + = . 由于 是一位数,所以返回 . 进阶:你可以 ...

  7. symfony学习笔记2—纯的PHP代码和symfony的区别

    Symfony vs 纯PHP为啥symfony比普通的php文件访问要好?这一章我们写一个简单的php文件项目,然后组织它,你会发现为什么web应用会发展到现在这个样子.最后我们将学习symfony ...

  8. print(函数.__closure__) 来判断是不是闭包, 返回cell , 是闭包, 返回None 则不是闭包

    print(函数.__closure__) 来判断是不是闭包,  返回cell , 是闭包,       None 则不是闭包

  9. 张高兴的 Windows 10 IoT 开发笔记:FM 电台模块 KT0803L

    This is a Windows 10 IoT Core project on the Raspberry Pi 2/3, coded by C#. GitHub:https://github.co ...

  10. IntelliJ 禁用 Search Everywhere

    发现自: https://youtrack.jetbrains.com/issue/IDEA-114933#comment=27-603899 Open lib/resources.jar/idea/ ...