介绍一下会用到的一些内容

Python3打开、读取和关闭文件的方法

1 file = open('D:\passwd.txt','r') #打开文件

2 content = file.readlines() #读入全部文件内容,并存储到变量推荐使用字典

3 file.close() #关闭打开的文件

4 print (content) #打印变量内容

#打开文件后一定要记得关闭文件,因为在量少的时候对程序的影响不大,但是在程序长时间运行和文件量很大的情况下会严重影响性能。确保所有数据都写至磁盘。这称为刷新输出(flushing),这点非常重要。

往文件中写入内容的方法:

注意:使用访问模式w时,Python会打开指定的文件来完成写。如果这个文件已经存在,则会清空他现有的内容,也就是完全清除,要追加一个文件,需要使用访问模式a。要打开一个文件来完成读和写(不清除原有内容),需要使用w+。如果想打开一个文件完成写,但是这个文件并不存在,那么首先会为你创建这个文件,然后在打开文件进行行写。

r:以只读方式打开文件,文件不存在则报错

r+:以读写方式打开文件,文件不存在则报错会覆盖文件内容

a:以追加的方式打开文件,不会覆盖原有内容。(附加写入功能)

a+:以追加的方式打开文件,不会覆盖原有内容(附加读写功能,但是我在操作过程没看出有读的效果,我在去实验下)

w:文件不存在则新建,存在则将原有内容清空(附加只写功能)

w+:文件不存在则新建,存在则将原有内容清空(附加读写功能)

w+与r+的区别

r+:可读可写,若文件不存在则报错,会覆盖原有内容

w+:可读可写,若文件不存在则创建,会覆盖原有内容

r+与a+区别

r+:可读可写,会覆盖原有内容,但不是覆盖全部内容

a+:追加内容,不会覆盖原有内容

总结:

如果文件不存在会报错的有r和r+

打开文件只可写不可读的有a和w

会覆盖现有文件的有r、w和w+

可读可写的有r+、w+、a+

方法一:

1 file1 = open('D:\socket.txt','w') #以写入的模式打开文件

2 print ("Norwegian Blues stun easily",file = file1) #默认换行,把写入的内容打印到file1(这是一个变量)中

3 file1.close() #关闭文件

li = ["1","2","3"]

fiel= open('D:\socket.txt','a+')print (li,file = fiel)

方法二:

1 file1 = open('D:\socket.txt','a+') #以追加的模式打开文件

2 file1.write("bbbbbb\n") #写入内容并换行

3 file1.close() #关闭文件

方法三:

1 file1 = open('D:\socket.txt','a+') #以追加的模式打开文件

2 file1.writelines("bbbbbb\n") #写入内容并换行

3 file1.close() #关闭文件

解析write和writelines的区别:

write写入的是一个字符串内容,不能写入多个比如字典和列表用write写入就会报错

writelines的参数是序列,比如列表,它会迭代写入文件

方法三:

fiel = open('D:\socket.txt','a+') #以追加的模式打开文件

fiel.write("1212") #写入内容

fiel.close() #关闭文件

字典的使用

d = {} #创建字典

print (d) #打印字典

d["root"] = '/bin/bash' #给字典添加内容

d["httpd"] = '/sbin/nologin'

print (d) #打印字典全部内容

print (d["root"]) #打印字典key对应的内容

name = "root"

if name in d.keys(): #判断是否在字典中

print (name+"在字典中")

d["nfs"] = "/sbin/nologin" #字典内容的添加方法

print(d)del d["nfs"] #字典内容的删除方法

print(d)

d.pop("root") #字典的弹出和列表的pop用法一样

print (d)

d = {} #创建字典

print (d) #打印字典

d["root"] = '/bin/bash' #给字典添加内容

d["httpd"] = '/sbin/nologin'

print (d) #打印字典全部内容

print (d["root"]) #打印字典key对应的内容

name = "root"

if name in d.keys(): #判断是否在字典中

print (name+"在字典中")

d["nfs"] = "/sbin/nologin" #字典内容的添加方法

d["ftp"] = "/sbin/nologin"

print(d)

test1= d.popitem() #弹出末尾的内容

print(d)print (test1)

split()函数的使用

str = "1234,567\n90"

print(str)

str1= str.split(',') #以逗号为分隔符,分割内容,分割后的内容存入列表

print (str1) #打印列表

str = "1234,567\n90"

print(str)print ("==================")

str1= str.split(',')[0] #以逗号为分隔符,分割内容,只取出第一部分

print (str1) #打印列表

str = "1234,567\n90"

print(str)print ("==================")

str1= str.split(',') #以逗号为分隔符,分割内容,只取出第一部分

print (str1) #打印列表

str2 = str.split('\n')[1] #以换行符为分隔符,取出第二部分

print (str2)

实验要求:

输入用户名密码

认证成功后显示欢迎信息

输错三次后锁定用户

流程思路:

打开用户和密码文件并存入字典

打开锁文件存入字典

提示用户输入用户名和密码

如果输入错误再次提示输入,重复三次,三次之后将该用户锁定,紧有保存的用户名

#coding = utf-8

password= {} #创建字典

passwd = open('D:\passwd.txt','r') #以只读的模式打开,确保文件存在否则报错

for n in passwd.readlines(): #读取文件的全部内容

k = n.split('\t')[0] #以tab为分割取出用户名

#print(k)

v = n.split('\t')[1] #以tab为分割取出密码

#print (v)

m = v.split('\n')[0] #以回车为分割符,取出密码的完整内容

#print (m)

password[k] =m#print (password) #如果要看执行效果,就把那几个#去掉

passwd.close()

lock={}

look= open('D:\socket.txt','r')for i inlook.readlines():

k1= i.split('\n')[0]

lock[k1]=k1print(k1)print(lock)

count=0

look.close()

username= input("请输入用户名:")if username inlock.keys():print ("该用户已被锁定:")else:

pwd= input("请输入密码:")if pwd ==password[username]:print ("登录成功")else:while count < 2:

pwd= input("请输入密码:")if pwd ==password[username]:breakcount+=1

else:

sok= open("D:\socket.txt",'a+')

sok.write(username+'\n')

sok.close()print ("登录次数过多,用户被锁定")

python输入用户名密码、三次输入失败、退出程序_Python3练习-输入用户名输入三次错误即锁定该用户,提示登录失败...相关推荐

  1. sql server 帐户当前被锁定,所以用户 sa 登录失败。系统管理员无法将该帐户解锁 解决方法

    '帐户当前被锁定,所以用户 'sa' 登录失败.系统管理员无法将该帐户解锁'解决方法 如果短时间内不停连接,就会被SQL SERVER误认为是这是攻击,会将此账号锁定. 要用windows身份验证登录 ...

  2. 【转】该帐户当前被锁定,所以用户 'sa' 登录失败。系统管理

    转自:http://blog.sina.com.cn/s/blog_62eaa73f0100gjbw.html 今天在使用虚拟主机管理系统自动修改MSSQL数据库时提示: 该帐户当前被锁定,所以用户 ...

  3. 帐户当前被锁定,所以用户 sa 登录失败。系统管理员无法将该帐户解锁 解决方法...

    ALTER LOGIN sa ENABLE ; GO ALTER LOGIN sa WITH PASSWORD = 'password' unlock, check_policy = off, che ...

  4. 管家婆登录‘用户sa登录失败 ,’sql2000,msde的sa密码清空

    当我们更换用户后,会出现管家婆登录'用户sa登录失败',这时就要重新输入sa的密码, 打开管家婆服务器-数据库连接设置. 如果安装完全sql.一般是不会忘记密码的.因为你可以设置空密码但是有的时候你仅 ...

  5. 计算机调试致sa登录失败,无法打开登录 'xxxx' 中请求的数据库。登录失败。用户 'sa' 登录失败。解决思路...

    当前位置:我的异常网» Sql Server » 无法打开登录 'xxxx' 中请求的数据库.登录失败.用 无法打开登录 'xxxx' 中请求的数据库.登录失败.用户 'sa' 登录失败.解决思路 w ...

  6. 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联'。错误代码:18452 解决办法...

    原文:https://blog.csdn.net/wuxianwei/article/details/6330270 SQLSERVER 2005采用'SQLSERVER身份验证'去登录, 出错的原因 ...

  7. 读取锁信息失败(8):该账户当前被锁定,所以用户 ‘sa‘ 登录失败。

    读取锁信息失败(8):该账户当前被锁定,所以用户 'sa' 登录失败.系统管理员无法将该账户解锁. State:37000,Native:18486,Origin:[Microsoft][ODBC S ...

  8. 用户 'sa' 登录失败。原因: 未与信任 SQL Server 连接相关联

    message: 用户 'sa' 登录失败.原因: 未与信任 SQL Server 连接相关联.这个问题该如何解决?=============一.控制面板->服务->MS SQL SERV ...

  9. 解决问题:HTTP 错误 401.1 - 未授权:登录失败【转】

    解决问题:HTTP 错误 401.1 - 未授权:登录失败 HTTP 错误 401.1 - 未授权:登录失败 Internet 信息服务 -----------解决这个问题,折磨了两天,终于搞定了,首 ...

  10. oracle 登录失败次数,Oracle用户连续登录失败次数限制如何取消

    当用户连续登录失败次数过多时,Oracle会锁定该用户,"FAILED_LOGIN_ATTEMPTS"用于设置最大次数,超过该值则锁定该帐号. 要取消用户连续登录失败次数的限制可以 ...

最新文章

  1. java 加载dll后打包_让Jacob从当前路径读取dll文件及相关打包方法
  2. zabbix学习(四)IT_Service管理
  3. [Python3网络爬虫开发实战] 1.7.1-Charles的安装
  4. 云原生生态周报 Vol. 11 | K8s 1.16 早知道
  5. k8s包管理器helm_eShopOnContainers 知多少[10]:部署到 K8S | AKS
  6. 想进入谷歌吗?先来看看这些面试题吧
  7. php打包压缩下载多大,php多文件打包压缩下载简单示例
  8. asp.net GridView 时间格式化 设置 短日期格式 去掉0!
  9. 形式语义学关于带权有向图最短路径的有模式函数算法
  10. php 域名方法,PHP获取域名方法
  11. 纽微特反省:别人犯错不敢说,那是因为自己不干活
  12. 鼠标经过时改变DIV背景颜色的三种途径
  13. insert用法小结
  14. 关于Raster的理解
  15. 社区发现算法中模块化度量值Q(Modularity)的计算
  16. 【打卡-Coggle竞赛学习2023年3月】对话意图识别
  17. 简单的android小程序计算机,Android实现简易计算器小程序
  18. Android Battery(四) 电池管理
  19. h5(移动端) 监听软键盘弹起、收起
  20. 女孩被社会毒瘤恶意传播艾滋病!我用技术将其凶手绳之以法!

热门文章

  1. Spring 的表头
  2. Python读取docx文档的内容
  3. linux下bin安装包制作
  4. 2018年中国民营企业进出口12.1万亿元 增长12.9%
  5. 编程教育机构测试题(1)
  6. 全息电话会议开源项目LiveScan3D-Hololens
  7. geoserver修改默认密码
  8. 合肥赛区我们学校得了铜牌
  9. 心理学的简介和常用研究方法
  10. 文件路径匹配模式 globs匹配规则