import time
import os
user_info = {
'mac': {'pwd': '123', 'count': 0, 'locked': False},
'tank': {'pwd': '321', 'count': 0, 'locked': False},
'egon': {'pwd': '222', 'count': 0, 'locked': False},
} tag = True
inp_count = 0
while tag:
# 输入用户名
username = input('请输入用户名')
# 判断用户是否在用户列表中
if username in user_info:
print(f'[{username}]用户存在')
# 判断用户登录信息locked是否为True 判断文件中是否有该用户锁定文件
if user_info.get(username).get('locked') or os.path.exists('%s.txt' % (username,)):
print('当前用户需要锁定5分钟')
time.sleep(20) # 用户锁定时间
user_info.get(username)['clocked'] = False # 用户解锁后,将用户信息中locked值改为False
print('用户解锁成功')
# 用户解锁后删除文件
os.remove('%s.txt' % (username,))
inp_count = 0 # 重置用户输入次数
# 判断用户输入次数
while inp_count < 3:
password = input('请输入用户密码')
# 判断用户密码是否输入正确
if password == user_info.get(username).get('pwd'):
print('登录成功')
tag = False
break
else:
print('用户名或密码错误')
# 用户输入错误,输入次数 + 1
inp_count += 1
# 当用户密码输错三次时,锁定用户
if inp_count == 3:
print(f'[{username}]已被锁定')
user_info.get(username)['locked'] = True # 用户被锁定后,将用户信息中locked值改为True
# 将被锁定用户信息写入文件
with open('%s.txt' %(username,), 'w', encoding='utf-8') as f:
f.write('当前用户%s被锁定' % (username,))
break
else:
print('用户不存在')

python调用os模块锁定用户的更多相关文章

  1. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

  2. python中os模块中文帮助

    python中os模块中文帮助   python中os模块中文帮助文档文章分类:Python编程 python中os模块中文帮助文档 翻译者:butalnd 翻译于2010.1.7——2010.1.8 ...

  3. python基础:os模块中关于文件/目录常用的函数使用方法

    Python是跨平台的语言,也即是说同样的源代码在不同的操作系统不需要修改就可以同样实现 因此Python的作者就倒腾了OS模块这么一个玩意儿出来,有了OS模块,我们不需要关心什么操作系统下使用什么模 ...

  4. python中os模块在windows下的使用

    今天学习了一下Python的os模块,主要是针对文件夹和文件路径的一系列操作. 与Python内置函数相比这里这里的函数功能更多样化,功能也更强大.但是学习过程中我发现很多函数都是只适用于unix系统 ...

  5. 使用python调用email模块发送邮件附件

    使用python调用email模块实现附件发送 需要模块: import datetime import time import sys import mimetypes import smtplib ...

  6. python的os模块总结

    python的os模块总结 目录 常用方法和属性总结 文件操作 目录操作 常用方法和属性总结 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir(&quo ...

  7. linux下python调用c模块

    在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明:   (1)编写C代码,hel ...

  8. python之os模块使用

    python中os模块的常用语法 1.查看当前路径及路径下的目录 os.getcwd():返回当前路径(不包括文件名) os.listdir():返回当前路径下的所有目录列表. os.listdir( ...

  9. Python 使用OS模块调用 cmd

    在os模块中提供了两种调用 cmd 的方法,os.popen() 和 os.system()os.system(cmd) 是在执行command命令时需要打开一个终端,并且无法保存command命令的 ...

随机推荐

  1. Python基础知识详解 从入门到精通(七)类与对象

    本篇主要是介绍python,内容可先看目录其他基础知识详解,欢迎查看本人的其他文章Python基础知识详解 从入门到精通(一)介绍Python基础知识详解 从入门到精通(二)基础Python基础知识详 ...

  2. C# byte[]转string, string转byte[] 的四种方法

    转载:https://blog.csdn.net/tom_221x/article/details/71643015 第一种 string  str    = System.Text.Encoding ...

  3. 计算几何-HPI

    This article is made by Jason-Cow.Welcome to reprint.But please post the article's address.   在线笛卡尔坐 ...

  4. Mongodb学习笔记(三)性能篇

    一.索引管理 MongoDB提供了多样性的索引支持,索引信息被保存在system.indexes中MongoDB中_id字段在创建的时候,默认已经建立了索引,这个索引比较特殊,并且不可以删除,不过Ca ...

  5. 主席树+二分 p4602

    题意:给出每一种果汁的美味度,价格,升数: m个询问,每个询问给出最高上限的钱g,以及给出最少的w 意思是,最多用g的钱去买最少l的果汁,问能得到的最大美味度: 美味度是取所有果汁中美味度的最小值: ...

  6. Lining Up

    AtCoder - 2271-Lining Up                                                                             ...

  7. 05hive函数

    一. 系统内置函数 1)查看系统自带的函数 hive> show functions; 2)显示自带的函数的用法 hive> desc function upper; 3)详细显示自带的函 ...

  8. mybatis - buildSqlSessionFactory()

    buildSqlSessionFactory() 这个方法比较长, 干的事情也比较多. 包括一些别名, 插件, 类型处理器等的解析. 从主流程上来看, 最主要的其实是干了两件事:1. 对 mapper ...

  9. C:防止头文件重复包含

    当一个项目比较大时,往往都是分文件,这时候有可能不小心把同一个头文件 include 多次,或者头文件嵌套包含. 方法一: #ifndef __SOMEFILE_H__ #define __SOMEF ...

  10. Codeforces Round #618 E

    题意: 给你一个n的数组,你可以进行无数次,选择区间使得区间内的值相加,然后区间的所有的值变成平均值. 使得最后数组的字典序最小 思路: 最后的数组一定是单调递增的,只要它比之前的平均值数大,就不会操 ...