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

发布时间:2019-05-29 21:26:02编辑:auto阅读(1992)

     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()

     

关键字