1.python 如何操作IO流
通过open全局函数:打开本地的文件
open(file,mode)
file:打开的文件名或者路径
mode:打开的模式(默认是字符输入流)
open("1.txt",mode="r",encoding="utf-8")
”mode=“可以省略不写 直接写“r”
mode的其他参数
“r” 打开进行读取(默认)
“w” 打开以进行写入,首先截断文件
“x” 创建一个新文件并打开它进行写入
“a” 打开进行写入,如果文件存在,则追加到文件末尾
“b” 二进制模式
“t” 文本模式(默认)
2.IO操作字符数据
open("a.txt","r")
mode=“r”其本质是mode=“rt”-----t-------text 字符流
3.IO操作字节数据
open("a.png","rb")
b---------操作字节数据(图片,视频等)
字节可以操作任何数据,但是字符只可以操作字符数据。
当读取的数据过大时可以分段读取:
#以M单位进行读取
data = f.read(1024*1024)
备份文件的基本方法
f = open("图片1.png","rb")
f.read()
ff = open("图片.png","wb")
ff.write(f.read())
f.close()
ff.close()
可以通过os模块与os.path模块进行文件夹的所有文件的备份
三.对象的序列化
1.pickle模块
常用的函数
dumps:将对象序列化为字节数据
import pickle
ls = [1,2,3,4,5]
date = pickle.dumps(ls)
f = open("a.dat","wb")
f.write(date)
f.close()
在操作字节数据时需要将文件的后缀名修改为”dat“,查看时应该用专门的软件查看,否则是一堆乱码
loads:将字节数据反序列化为对象
f= open("a.dat","rb")
show=f.read()
show = pickle.loads(show)
f.close()
dump:将对象序列化为字节数据并保存到file中
pickle.dump(ls,open("b.dat","wb"))
相比于dumps,dump更加简单,可以直接写入文件中,不关流的情况下也能查看文件内容。
load:将file字节数据反序列化为对象
pickle.load(ls,open("b.dat","rb"))
相比loads也简单一些。
2.json模块
将对象序列化为字符数据,基本操作方法与pickle模块相似,只是写"mode"参数时需要将"b"修改为"t"或者不写(根据读取还是写入字符数据改变具体的mode参数)
json一般是用来序列化字典对象
版权归原作者 Lcbynro 所有, 如有侵权,请联系我们删除。