首页 > 代码库 > 如何优雅的打开文件

如何优雅的打开文件

文件的基本操作

这里讲主要是讲到如何打开文件,设置文件的打开权限以及方式

打开文件

打开文件的模式有:

  • r,只读模式(默认)。
  • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
  • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读
  • a+,同a

"U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)

  • rU
  • r+U

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

  • rb
  • wb
  • ab

文件的打开语法一般是open()语句

1 f  = open("txt","r") #用只读方式打开文件名为txt f变量作为文件的操作对象
2 
3 f.close() #文件打开后要记得关闭 

注意 使用只读‘r‘打开文件时是从文件头开始读取内容。使用追加‘a‘打开文件时是从文件末尾开始写入内容。在使用只写‘w‘往文件中写入文件时,是先创建一个新的文件将写的内容写到新的文件中再覆盖旧的文件,这样原文件中的内容都会消失。

练习

编写登陆接口

  • 输入用户名密码
  • 认证成功后显示欢迎信息
  • 输错三次后锁定

锁定的用户名单

技术分享
张三
李四
lockedname

登录的用户名单

技术分享
尼古拉斯赵四 123
亚历山大王二 456
login

 

 1 #Auther: Xiaoliuer Li
 2 
 3 import sys
 4 
 5 f = open("lockedname", "r", encoding="utf-8")       #打开被锁定的用户名单 从头开始读取文件
 6 f1 = open("login","r",encoding="utf-8")       #打开登录用户的名单
 7 
 8 
 9 
10 
11 i = 0              #设置变量来控制循环次数
12 while i < 3:
13 
14     user = input("请输入用户名:")
15     for line in f:                                  #在被锁定的名单搜索用户名
16         if user == line.strip():
17             print("用户%s已经被锁定"%user)
18             sys.exit()   #跳出整个程序
19 
20     if len(user) == 0:
21         print("用户名不能为空 请重新输入")
22         continue
23 
24     passwd = input("请输入密码:")
25     T = False                         #设置变量来跳出循环
26     for line in f1:
27         if line.split()[0] == user and line.split()[1] == passwd:
28             print("success!")
29             T = True
30             break
31 
32     if T == False:                 #当变量为输入的用户和密码错误时进入此循环并使次数自增一次
33         if i < 2:
34             print(您的用户或密码有误,请重新输入!)
35         i += 1
36 
37     else:
38         print("欢迎用户 %s 来到登录系统" % user)
39         break
40 
41 else:
42     f = open("lockedname", "a", encoding="utf-8")    #在文件末尾追加用户名
43     print("你的用户%s已经被锁定!"%user)             #将三次输错的用户名写进名单
44     f.write("\n" + user)
45 
46 
47 f.close()
48 f1.close()

 

如何优雅的打开文件