python 3.x 循环读取文件用户登录

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

 

转载于:https://www.cnblogs.com/cishen/p/10757580.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值