测试学习–python(八)
内容提要
- 文件操作
- 普通文件操作
- json文件操作
- 异常处理
文件
计算机的⽂件,就是存储在某种⻓期储存设备上的⼀段 数据
- 作用:将数据⻓期保存下来,在需要的时候使⽤
- 计算机只认识 ⼆进制(0 1)
- ⽂件中存储的数据都是以⼆进制(0 1) 的形式去存储的
文件分类
可以根据 ⽂件中的⼆进制内容,能否使⽤记事本软件 将其转换为
⽂字, 将⽂件分为两种: ⽂本⽂件和⼆进制⽂件
- 文本文件:能够使⽤记事本软件打开(能够使⽤记事本转换为⽂字)
- txt, md, py , html, css, js , json
- 二进制文件:不能使⽤记事本软件打开的
- exe, mp3, mp4, jpg, png
文件操作
打开文件
- 将⽂件从磁盘(硬盘) 中 读取到内存中
- 语法:
open(file,mode='r',encoding=None)
- 参数 file: 是要打开的⽂件, 类型是字符串, ⽂件的路
径可以是相对路径,也可以是绝对路径(从根⽬录开始书写的路
径),建议使⽤相对路径(相对于当前代码⽂件所在的路径, ./
…/ ) - 参数 mode: 默认参数(缺省参数), 表示的是打开⽂件
的⽅式
r: read 只读打开
w: write 只写打开
a:append 追加打开, 在⽂件的末尾写⼊内容
-参数 encoding: 编码⽅式,(⽂字和⼆进制如何进⾏转换
的)
gbk: 将⼀个汉字转换为 2 个字节⼆进制
utf-8: 常⽤, 将⼀个汉字转换为 3 个字节的⼆进
制 - 返回值: 返回的是 ⽂件对象, 后续对⽂件的操作,都需要
这个对象
读写文件
写文件
- 向⽂件中写⼊指定的内容.
- 前提: ⽂件的打开⽅式是 w 或者 a
- 语法:
文件对象.write('写入文件的的内容')
返回值: 写⼊⽂件的字符数,⼀般不关注
注意 w ⽅式打开⽂件:
- ⽂件不存在,会直接创建⽂件
- ⽂件存在,会覆盖原⽂件(将原⽂件中的内容清空)
读文件
- 将⽂件中的内容读取出来
- 前提: ⽂件的打开⽅式需要是 r
- 语法:
文件对象.read(n)
# 参数 n 表示读取多少个字符, ⼀般不写,表示读取全部内容
# 返回值: **读取到的⽂件内容, 类型 字符串**
- r ⽅式打开⽂件 ,如果⽂件不存在,代码会报错
关闭文件
- 关闭⽂件: 将⽂件占⽤的资源进⾏清理,同时会保存⽂件,
- ⽂件关闭之后,这个⽂件对象就不能使⽤了
- ⽂件对象.close()
f=open('a.txt','r',encoding='utf-8')
buf=f.read()
print(buf)
f.close()
使用withopen打开文件
- 优点:不用自己去书写关闭文件的代码
- 语法:
with open(file,mode,encoding='utf-8')as 变量:
#缩进写入或读取文件
#缩进中代码执行结束,出缩进之后文件会自动关闭
with open('a.txt','a',encoding='utf-8')as f:
f.write('good good study')
# a ⽅式打开⽂件, ⽂件不存在会创建⽂件, ⽂件存在, 在⽂件的末尾写⼊内容
按行读取文件内容 readline()
- 按⾏读取⽂件: ⼀次读取⼀⾏内容
- 语法:文件对象.readline()
with open ('b.txt',encoding='utf-8') as f:#mode默认为’r‘
buf=f.readline()
print(buf)
print(f.readline())
长文件全部读取,利用循环
# with open('b.txt', encoding='utf-8') as f:
# for i in f: # 按⾏读取, 读到⽂件末尾结束
# print(i, end='')
# read() 和 readline() 读到⽂件末尾, 返回⼀个空字符串,即⻓度为 0
with