文件的读写模式
r : 只读模式(默认)
使用该模式打开的文件只能读取内容不能做其它操作
r模式下当文件路径不存在时直接报错;当文件路径存在会打开文件等待读取文件内容。
w :只写模式
使用该模式打开的文件只能写内容不能做其它操作
此模式下当文件路径存在则会先清空该文件内容 之后等待填写新内容;当文件路径不存在则会自动创建该文件。
a :只追加模式
使用该模式打开的文件默认在末尾追加新的内容不能做其它操作
a模式下当文件路径不存在则会自动创建该文件;若路径存在a模式不会清空该文件内容 只在文件末尾等待添加新内容。
with open(r'1.txt',选择r、w、a模式,encoding='utf-8') as f:
拓展知识:
1.with语法支持一次性打开多个文件
with open(r'a.txt','r',encoding = 'utf-8') as a1,open(r'b.txt','r',encoding = 'utf-8') as a2: # 可以相同的套路打开多个文件
2.补全python语法,不做任何操作
pass 推荐
... 不推荐
if 1 == 1: pass if 1 == 1: ... '''两种方式结果相同但更推荐pass'''
3.单词小技巧
通常情况下在英语单词结尾加上able表示具备该单词描述的能力
readable 具备读取内容的能力
writable 具备填写内容的能力
文件的操作模式
1.t:文本模式(文本操作的默认模式)
r rt
w wt
a at
在文本模式下只能对文本文件进行操作;
文本模式必须指定encoding参数;
读写都是以字符串为单位;
with open(r'a.txt','r',encoding='utf-8') as f:
2.b:二进制模式
rb
wb
ab
在二进制模式下能够操作所有类型对文件;
二进制模式不需要指定encoding参数;
二进制读写文件都是以bytes为单位;
with open(r'a.jbg','rb') as f: f.read()
文件的诸多操作方法
read() :读取文件内所有内容读取完后光标停留在文件末尾,再次读取时则为空
readline() :将文件内容一行一行的读取(用来读取大文件)
readlines() : 一行一行的读取所有的内容并组织成列表返回
readable() :判断当前文件是否可读
writable() :判断当前文件是否可写
write() : 填写文件添加内容
writelines() :支持填写容器类型(内部可以存放多个数据值的数据类型)多个数据值
flush() :将内存中的文件数据存储到硬盘(主动按ctrl+s)
###今日作业###
1.编写简易版本的拷贝工具
自己输入想要拷贝的数据路径 自己输入拷贝到哪个地方的目标路径
任何类型数据皆可拷贝
ps:个别电脑C盘文件由于权限问题可能无法拷贝 换其他盘尝试即可
2.利用文件充当数据库编写用户登录、注册功能
文件名称:userinfo.txt
基础要求:
用户注册功能>>>:文件内添加用户数据(用户名、密码等)
用户登录功能>>>:读取文件内用户数据做校验
ps:上述功能只需要实现一次就算过关(单用户) 文件内始终就一个用户信息
拔高要求:
用户可以连续注册
用户可以多账号切换登录(多用户) 文件内有多个用户信息
ps:思考多用户数据情况下如何组织文件内数据结构较为简单
提示:本质其实就是昨天作业的第二道题 只不过数据库由数据类型变成文件