文本文件操作核心函数:
open()打开文件
close()关闭打开的文件
read..()读取文件内容
write..()将内容写入到文件中
helloworld!简单操作:打开一个文件,将指定的内容写入到文件中
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
函数
- file:要打开的文件路径
- mode=”r”:打开文件的方式
- r:表示以只读的形式打开文件
- w:表示以只写的方式打开文件,每次打开文件时,会清空文件原来的内容
- x:表示创建文件并以只写的方式打开文件
- a:表示以追加内容的方式打开文件,每次写入数据时会在原来的数据后面追加
- b:表示以二进制的方式打开文件
- t:表示以文本文件的方式打开文件,默认方式
- +:以更新的方式打开文件(可读可写)
- 常规:”tw”/”tr”/”ta”/”bw”/”br”/”ba”
read读取文件内容
类似这样的函数,查看帮助文档时,切记,如果直接使用help(read)会出现未定义的错误,我们需要在打开的文件上查看这个函数的使用帮助:
help(f.read)
文本(二进制)文件的读取:
read()直接根据默认的长度读取一段数据【65535个字符】
read(size)每次读取size个字符的数据
readline()每次读取一行数据,读取到的数据为空字符串时,表示文件中的数据读取结束
readlines()读取数据,以行为单位,将读取到的数据保存在一个列表list中
文本文件的写入:
write(str):将一个字符串,写到文件中
writelines(strlist):将一个字符串列表,写入到文件中
open(file, "w")
:以w的模式打开的文件,每次打开的时候,都会清空原来的文件数据
open(file, "a")
:以a的模式打开的文件,每次打开的时候,会在原来的文件数据后追加
二进制文件的写入操作
- 字符串->二进制数据
- S = “字符串”
- B = bytes(S, encoding=”utf-8”)
- B二进制数据
- 二进制数据->字符串
- B = b’/x12/xd3/x1a/xef’
- S = B.decode()
- S = “字符串”
打开文件:
f=open(file, “bw”)
f.write(B)
f.flush()
f.close()
f = open(file, “br”)
B = f.read()
S = B.decode()
f.close()
重点来了:
向文件中保存程序中的对象(列表、字典等等)
从文件中读取对象数据(读取到的数据,就直接是列表、字典等等)
文件操作的流程
- 打开文件
操作文件内容
- 关闭文件
with语句,简化文件操作,封装了打开文件和关闭文件的操作(自动化了)
f = open(file)
f.write/read()
f.close()
with open(file) as f:
f.write/read()
在真实项目开发时,文件的操作(文件的IO操作)通常使用with语句来实施。
IO--> Input/Output 输入/输出 输入流/输出流 流(数据流)
输入Input:将文件中的数据,输入到程序中
输出Output:将程序中的数据,输出到文件中
IO:核心~程序
二进制文件——序列化
要使用序列化功能,需要引入pickle
import pickle
序列化写入对象数据:pickle.dump(obj, file)
序列化写入对象数据:pickle.load(obj, file)