六、文件操作
文章目录
- 介绍
- 文本文件
- json文件
- 读取
- 写入
- 二进制文件
- 操作步骤
- 打开文件`open`
- `with open`
- 读/写文件
- 读文件`read`
- 写文件`write`
- 关闭文件`close`
- 举例
介绍
计算机中文件的存储是以**二进制(0、1)**形式存储的
文本文件
能够使用文本编辑软件打开的文件,如txt、py、json等
json文件
import json
JavaScript Object Notation,基于文本,独立于语言的轻量级的数据交换格式。因此,作为文本文件是可以直接使用read()和write(),返回的是字符串,实际使用存在不便。
- json文件的后缀是.json
- json的主要数据类型为对象{}(对应python中的字典)和数组[](对应python中的列表),可以互相嵌套,也有其他数据类型。
- 一个json文件即一个对象或数组
- json中的对象由键值对组成,每个数据之间用逗号隔开,最后一个数据后不能写逗号
- json中的字符串必须使用双引号
读取
json.load(file)
返回的是字典或列表
写入
json.dump(数据内容,文件对象)
# 显示中文,ensure_ascii=False
# 显示缩进,indent=num
二进制文件
不能使用文本编辑软件打开的,如exe、mp3等
操作步骤
打开文件open
将文件从磁盘/硬盘中打开,读取到内存中
open(file,mode='r',encoding=None)
1、file
,需要打开的文件路径
相对路径:相对当前代码文件所在的路径 ./
绝对路径:从根目录开始的路径
2、mode
,打开文件的方式,默认参数是r
r:read,只读
w:write,只写
a:append,文件存在则末尾追加,文件不存在则创建
还有其他模式…
3、encoding
,编码方式,文本同二进制的转换
utf-8:常用,将一个汉字转换为3个字节的二进制
gbk:将一个汉字转换为2个字节的二进制
还有其他编码方式…
4、返回值
返回的是文件对象,通过该对象进行后续文件操作
with open
不用手动书写关机文件的代码,会自动进行关闭
with open(file,mode,encoding='utf-8') as filename:
# 文件操作
#操作结束后自动关闭文件
读/写文件
若读写的文件不存在会报错
读文件read
读取文件中的内容,文件的打开方式需为r,返回值为读取的内容
file.read()
写文件write
向文件写入指定内容,文件的打开方式需为w或a,返回值为写入文件的字符数,一般不关注
file.write(str)
关闭文件close
清理文件占用的资源,同时保存文件,文件关闭后无法使用文件对象
file.close()
举例
import random
with open('data.txt','w',encoding='utf-8') as f:
for i in range(10):
num=random.randint(1,20)
f.write(f'{num},')
with open('data.txt','r',encoding='utf-8') as f:
data=f.read()
# 去掉最后一个逗号
data=data[:-1]
# 分隔字符串,返回数字列表
dataList=data.split(',')
numList=[]
for i in dataList:
numList.append(int(i))
numList.sort(reverse=True)
# 降序后取前五数字导入新文件中
with open('data1.txt','w',encoding='utf-8') as f1:
newList=numList[:5]
for i in newList:
f1.write(f'{i},')