Python----文件操作I/O(打开文件、读写、关闭文件)

打开文件:(注:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。)

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

参数说明:

  • file: 必需,文件路径(相对或者绝对路径)。
  • mode: 可选,文件打开模式
  • buffering: 设置缓冲
  • encoding: 一般使用utf8
  • errors: 报错级别
  • newline: 区分换行符
  • closefd: 传入的file参数类型
  • opener:

mode参数:

r:只读模式;指针指向文件开头。这是python默认的文件打开模式。
w:只写模式;如果文件已经存在,则覆盖原有文件。如果文件不存在,则新建文件。指针指向文件开头。

x:只写模式;新建一个文件,如果该文件已存在则会报错。

a:追加模式;如果文件已经存在,则从原文件末尾开始追加写入。如果文件不存在,则创建新文件。指针指向文件末尾。

b:二进制模式

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

 

 1 #coding:utf-8
 2 
 3 def json_file():
 4     with open("gm.txt", "mode") as f1:
 5         f1.write("x:只写模式;文件不存在,则新建文件,反之报错")
 6     with open("gm.txt", "w") as f2:
 7         f2.write("w:只写模式;若文件不存在,则新建文件,反之覆盖原有文件;指针指向文件开头")
 8     with open('gm.txt', 'a') as f3:
 9         f3.write("a:追加模式;若文件不存在,则新建文件,反之从原文件末尾开始追加写入;指针指向文件末尾。")
10     with open('gm.txt', 'r+', encoding = 'GBK') as f4:
11         f4.write("r:只读模式;是Python默认的打开文件模式;指针指向文件开头;注:"+"表示可以同时具有读写权限")
12 if __name__ == '__main__':
13     json_file()

常用方法:

对文件的基本操作,一般使用到的方法为具体为:

open()打开文件

read()读取文件

write()写入文件

close()关闭文件

fileno()文件描述符

flush()刷新文件内部缓存区

isstty()判断文件是否同意tty设置

readable()是否可读

readline()仅读取一行数据

seek()指定文件中指针位置

tell()获取指针位置

writeable()是否可写

truncate()截取数据,仅保留指定之前数据

 

 1 def caidan():
 2     while True:
 3         print('=======欢迎登录博客系统=======')
 4         inp = int(input('1、登录 2、注册 3、退出 \n'))
 5         if inp == 1:
 6             is_login_check()
 7         elif inp == 2:
 8             register()
 9         elif inp == 3:
10             break
11         else:
12             print("输入错误,请重新选择,谢谢!")
13 
14 def register():
15     username = input("请输入用户名:")
16     password = input("请输入密码:")
17     with open('userinfo.txt', 'a') as f:
18         userinfo = username + "&" + password + "\n"
19         f.write(userinfo)
20 
21 def user_exit(username):
22     with open('userinfo.txt', 'r') as f:
23         for userinfo in f:
24             userInfo = userinfo.strip()
25             info = userInfo.split('&')
26             if username == info[0]:
27                 return True
28         return False
29 
30 def login(username, password):
31     with open('userinfo.txt', 'r')  as f:
32         for userInfo in f:
33             userInfo = userInfo.strip()
34             info = userInfo.split('&')
35             if username == info[0] and password == info[1]:
36                 print('恭喜您,登录成功!')
37                 return True
38         return False
39 
40 def is_login_check():
41     username = input('请输入您的账号:\n')
42     is_user_exits = user_exit(username)
43     if is_user_exits:
44         password = input('请输入账号的密码:\n')
45         is_login = login(username, password)
46         if is_login:
47             return '登录成功!'
48         else:
49             print('用户名或者密码错误!')
50     else:
51         print('Sorry,您输入的账号不存在')
52         inp = input('是否注册Y/N:\n')
53         if inp == 'Y':
54             register()
55         else:
56             caidan()
57 
58 if __name__=='__main__':
59     caidan()

 

posted @ 2020-07-22 10:29  给自己一个改变的理由  阅读(630)  评论(0编辑  收藏  举报