0


IO流的操作(python)

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一般是用来序列化字典对象

标签: python

本文转载自: https://blog.csdn.net/Lcbynro/article/details/121442212
版权归原作者 Lcbynro 所有, 如有侵权,请联系我们删除。

“IO流的操作(python)”的评论:

还没有评论