作用
用来保存数据,防止数据流失
方式:二进制存储,也叫字节流,因为计算机只识别二进制
内存:速度快,但不保存数据
硬盘:保存数据,但速度慢
所以有了缓冲池
注意
往文件中存储的时候,只能存字符串,存其余的类型会报错
f=open(file,mode='r') #默认打开方式为只读
mode参数
r 只读
w 写入
a 追加
x 同r,只是当文件不存在的时候会报错
b 二进制(可以与上面连用)
+ 增强语句
+和b都可以和上面的连用
符号 | 作用 | 没有这个文件 | 是否覆盖 |
---|---|---|---|
r | 只读 | 报错 | 否 |
r+ | 可读,可写 | 报错 | 追加写 |
w | 写 | 创建 | 是 |
w+ | 可写读,但读不出来 | 创建 | 是 |
a | 追加 | 创建 | 否,追加写 |
a+ | 可以读写,但读不出来 | 创建 | 否,追加写 |
f.read() 读取文件内容 与r连用
f.readlines() 读取文件的全部内容,返回列表
f.readline() 读一行
f.write() 往文件里写内容 与w连用
f.writeline() 写一行
f.writetlies() 全写
f.tell() 告诉文件指针的位置 算的是字节数
f.close() 关闭文件
f.seek(offset[,whence]) 设置文件指针的位置
注意在除了二进制文件中,whence只能设置为0,表示从开头开始,1代表从当前位置,2代表结尾
offset 偏移量
***字符与字节数的关系***
在ascii中一个字符占一个字节
在Unicode中一个字符四个字节 简称:万国码
在utf-8中一个字符占三个字节
在gbk中,一个字符占两个字节 中国人自己用的
'''
a.txt
aaa'''
f=open('a.txt','r')
print(f.read())
f.close() >>>aaa
f=open('a.txt','w')
f.write('bbb')
f.close() >>>bbb
f=open('a.txt')
l=f.readlines() >>>l=['bbb']
不用关闭的方法
with open(file,mode=‘r’) as f:
with open('a.txt',mode='r') as f:
f.read() >>>'bbb'
pickle的用法
pickle可以不单单保存字符串
python的pickle模块实现了基本的数据序列和反序列化。
通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储。
通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
pickle.dump(obj,f) 把对象保存在filename中
obj=pickle.load(f) 读取文件中的内容
o=pickle.dumps(obj) 把任意对象序列化一个byte字节返回,不写入文件
pickle.loads(o) 直接从byte对象读取序列化的信息,而不是从文件中读取
可以查看模块的内容模块