python文件读取操作序列化

Posted 银色的音色

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python文件读取操作序列化相关的知识,希望对你有一定的参考价值。

1.对文件进行读写操作时,先建立文件句柄

1 f = open("test.txt","r",encoding="UTF-8")

其中,r为文件操作权限:

r-只读,w-写(新建文件后写),a-追加(f.write()后在最后追加信息),r+读写(追加写),rb二进制文件读(后面不跟encodi)常用来做网络传输及视频文件读写操作。

2.文件读操作

1 f.read()              #读取文件
2 f.readline()          #读一行
3 f.readlines()         #从节点处读取文件并生成一个列表

 在读取文件时,有一类似光标的功能。可以对光标进行操作

f.tell()      #显示光标位置
f.seek()      #将光标移动到指定位置
f.truncate() #从头截取指定光标数的字符,包含空格、标点。

常规情况tell与seek应搭配使用。

用指令将数据从内存中刷新到硬盘中(强制刷新):

1 f.flush()

3.序列化

 将内存状态写至文件常用的为json与pickle数据序列化,json序列化存储的文件可作为与java等语言的接口文件,但只能做简单数据的存储。

1 import json
2 info = {"name":"Aaron",
3         "sex":"male",
4         "age":32}
5 f = open("json序列化.txt","w",encoding="utf-8")
6 print(json.dumps(info))
7 f.write(json.dumps(info))
8 f.close()


打印数据:{"name": "Aaron", "sex": "male", "age": 32}
json序列化.txt中的数据
{"name": "Aaron", "sex": "male", "age": 32}

将数据存贮至文件中后,反序列化

1 import json
2 f = open("json序列化.txt","r",encoding="utf-8")
3 data = json.loads(f.read())

pickle的序列化与反序列化与json方法一样,但存储的文件为二进制文件

import pickle
info = {"name":"Aaron",
        "sex":"male",
        "age":32}
f = open("json序列化.txt","wb",)   #此处应为wb
print(pickle.dumps(info))
f.write(pickle.dumps(info))
f.close()

打印出的值:b‘x80x03}qx00(Xx04x00x00x00nameqx01Xx05x00x00x00Aaronqx02Xx03x00x00x00sexqx03Xx04x00x00x00maleqx04Xx03x00x00x00ageqx05K u.‘

 pickle的反序列化

1 import json,pickle
2 f = open("json序列化.txt","rb")
3 data = pickle.loads(f.read())
4 print(data["name"])

 








以上是关于python文件读取操作序列化的主要内容,如果未能解决你的问题,请参考以下文章

GoLang -- json文件操作

Python3 关于excel 文件格式xls之读取写入和追加

python读取文件操作文件放在哪里

Python第六课----IO和序列化

从netCDF读取时间序列与python

Python之IO编程——文件读写StringIO/BytesIO操作文件和目录序列化