×

pickle.py文件

pickle.py文件(pickle 文件)

admin admin 发表于2023-04-01 05:59:08 浏览74 评论0

抢沙发发表评论

本文目录一览:

请问大神怎样使用Python中的pickle模块把一个文本文件中所有内容改成存储为序列化模式?

import pickle

with open('hello.txt', 'r') as fr:

    data = fr.read()

    print(data)

with open('data.pickle', 'wb') as fw:

    pickle.dump(data, fw, pickle.HIGHEST_PROTOCOL)

with open('data.pickle', 'rb') as fr:

    data = pickle.load(fr)

    print(data)

python里pickle是什么意思

pickle模块是对Python对象结构进行二进制序列化和反序列化的协议实现,就是把Python数据变成流的形式。

Python, 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议 。Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进。-pickle.py文件

如何把py文件中生成的数据变成pkl格式

# -*- coding:utf-8 -*-

#使用pickle模块将数据对象保存到文件

import pickle

data1 = {'a': [1, 2.0, 3, 4+6j],

         'b': ('string', u'Unicode string'),

         'c': None}

selfref_list = [1, 2, 3]

selfref_list.append(selfref_list)

output = open('data.pkl', 'wb')

# Pickle dictionary using protocol 0.

pickle.dump(data1, output)

output.close()

python pickle 如何读写PyQt4对象

在Python中存储数据到文件中时,简单的做法是调用open函数执行文件写入操作,但是这样做的话,当我们要重新读取文件内容时,就会出现类型不匹配的情况,因为读取的都是字符串的形式,所以还需要进行类型转换,这样不简洁。-pickle.py文件

或者使用eval函数把字符串转换为对象,但是有时它过于强大,它会执行Python的任何表达式,甚至做出威胁系统正常工作的表达式,这样做不安全。

如果想存储Python原生对象,但又无法信赖文件的数据来源,那么pickle模块会是个理想的选择。

pickle模块是能够让我们直接在文件中存储几乎任何Python对象的高级工具,并不要求我们把字符串转换来转换去,像是个超级通用的数据格式化和解析工具。

demo.py:

D = {'name':'Allen', 'age':21}

f = open('p_data.pkl','wb')

import pickle

pickle.dump(D,f)

f.close()

f=open('p_data.pkl','rb')

e=pickle.load(f)

print(e)

print(type(e))

控制台输出:

{'name': 'Allen', 'age': 21}

class 'dict'

[Finished in 0.4s]

然后它会在指定路径下生成p_data.pkl文件:

8003 7d71 0028 5804 0000 006e 616d 6571

0158 0500 0000 416c 6c65 6e71 0258 0300

0000 6167 6571 034b 1575 2e

如果控制台提示”attributeError:'module' object has no attribute ‘dump'”,那么很可能是因为你的文件名命名为”pickle.py”,这与内置模块文件重名了,改一下就可以了。。-pickle.py文件

Python3读取Python2保存pickle文件错误解决方法

python2保存pickle文件M,python3读取报错:

数据文件是在Python2下序列化的,所以使用Python3读取时,需要将‘str’转化为'bytes'

小的例子:

with open('final_project_dataset.pkl', 'r') as data_file:

    data_dict = pickle.load( StrToBytes(data_file) )

含有中文字符的话,在类函数里,编码时要制定编码格式,某些字符GBK不支持会报错,如指定为'UTF8'、'GB2312'

在保存的时候直接保存为wb,猜测读取时直接用rb读取就不会这么麻烦,没有实际实验,如有朋友有测试结果,欢迎评论。