Python之文件写入、二进制文件读写、内存读写、序列化、pickle与json模块、读写csv。
写入文件
1.打开文件对象
open(file,mode,encoding)
参数一:文件路径【可以存在,也可以不存在】
参数二:模式【w/a】
参数三:encoding 编码格式
功能:返回一个打开文件的对象
当w模式的时候,覆盖写,若此文件已经存在,后面写的会将前面的文件进行覆盖,
若此文件不存在,则创建此文件。
当使用a模式的时候,追加写,若此文件已经存在,后面写的追加在原文件的后面,
若此文件不存在,则创建文件。
f.write(str)
功能:将字符串写入到打开的文件中,注意写入必须是字符串
f.writelines(list)
参数:列表,并且列表中元素一定是字符串
功能:将列表中的元素写入到打开的文件中。
f.close()
功能:保证内容写入到文件中。
例:
f = open("demo.txt","w",encoding="utf-8") print(f.write("你好")) f.writelines(["hello","good","nice"]) f.close()
with语句
with open(file,mode,encoding) as f1: 文件操作 写入文件 读取文件
with语句块的作用:
当with下面的语句执行完毕之后,它会自动帮我们关闭此文件,无需我们手动close文件
二进制文件的读取
当读取音频视频以及图片的时候,我们需要使用二进制文件的读取以及写入。
with open(file,mode) as f: pass
参数:
file:文件路径
mode:rb 读取二进制文件
strb = f.read()
功能:一次性读取所有内容,以二进制的字符串返回。
strb = f.read(size)
功能:一次性读取size个字节
注意:一般情况下,使用f.read(size)居多
例:
with open("1.jpg","rb") as f: #循环读取一张图片,一次性读取1024个字节 while True: strb = f.read(1024) if strb == b"": break print(strb)
二进制文件的写入
当读取音频视频以及图片的时候,我们需要使用二进制文件的读取以及写入。
with open(file,mode) as f: pass file:文件路径 mode:wb/ab 读取二进制文件 f.write(strb)
内存中的读写
内存中读写
StringIO在内存中读写字符串的。
from io import StringIO
在内存中写入字符串
sio.write(str)
功能:将字符串写入sio对象中。
sio.getvalue()
功能:获取写入的内容
sio = StringIO() sio.write("hello") sio.write("good") print(sio.getvalue())
sio2.read()
功能:一次性读取所有的sio对象中的内容。
例:
from io import BytesIO bio2 = BytesIO("中国红".encode("utf-8")) print(bio2.read().decode("utf-8"))
序列化与反序列化:
将变量从内存变成可存储或者是可传输的这个过程我们称之为序列化。
将变量的内容从序列化的对象中重新读入到内存的过程我们称之为反序列。
例:需求:
1.将字典存到demo.txt文件中
2.从demo.txt文件中将字典重新读取
dict1 = {"name":"韩梅梅","age":19} with open("demo.txt","r",encoding="utf-8") as f2: str1 = f2.read() print(str1) dict2 = eval(str1) print(dict2) print(type(dict2))
pickle 模块
import pickle
pickle模块可以将任意的对象序列化成二进制的字符串写入到文件中。
还可以从文件中读取并且转为写入时候类型。
pickle.dumps(obj)
功能:将obj进行序列化
pickle.dump(obj,f)
参数一:被序列化的对象
参数二:打开的文件
功能:将obj序列化并且存入到打开的文件中
pickle.loads(bytes)
功能:将二进制的字符串转为对象
pickle.load(f)
功能:将文件中的内容读取并且转为对象
json模块
import json
json模块提供的方法,可以直接将python基本数据类型序列化为json字符串。
也可以将json字符串转为python的基本数据类型。
json.dumps(obj,default)
obj:被序列化的对象
default:函数,将对象转为字典的函数
功能:将对象序列化为json字符串
json.dump(obj,f,default)
obj:被序列化的对象
f:打开的文件对象
default:函数,将对象转为字典的函数
功能:将对象序列化为json字符串并且写入到打开的文件对象中
json.loads(s,object_hook)
参数一:字符串
参数二:将字典转为对象的函数
功能:将字符串反序列化成对象
json.load(f,object_hook)
参数一:打开的文件对象
参数二:将字典转为对象的函数
功能:将打开的文件对象的内容读取并且反序列化成对象
读写csv文件
csv文件本身就是个纯文本文件,这种文件格式经常用来作为不同程序之间的数据交互的格式.
- python常见模块之序列化(json与pickle以及shelve)
- python3----模块(序列化(json&pickle)+XML+requests)
- python 列表 字典 读写文件:pickle模块的基本使用
- python学习之路(json & pickle 模块 ---序列化,反序列化)
- Python模块之pickle(列表,字典等复杂数据类型与二进制文件的转化)
- Python模块知识4:序列化Json/pickle
- python 序列化及其相关模块(json,pickle,shelve,xml)详解
- python封装-mongo数据写入json文件和csv文件
- Python 文件的读写和 json 、csv 的用法
- python使用csv模块读写csv文件
- python之文件操作(包含json与pickle模块)
- python全栈开发-json和pickle模块(数据的序列化)
- Python序列化模块json和pickle
- python之模块csv之CSV文件的写入(按行写入)
- python序列化pickle模块和json模块简单学习
- Python模块:shutil、序列化(json&pickle&shelve)、xml
- python读写csv_xml_json配置文件
- Python--模块之sys模块、logging模块、序列化json模块、序列化pickle模块
- python | 读文件 | csv 、json、pickle等
- python之模块csv之CSV文件的写入(基本结构)