pickle相关内容

Pytest:删除被测试函数创建的文件

我正在测试一个函数,该函数在执行过程中会腌制对象.测试后,我想删除pickle文件. 如果是测试本身保存文件,pytest 的“tmpdir"夹具似乎是解决方案.但是,由于正在测试的功能是保存文件的创建者,而不是测试,我不确定测试后清理文件的正确方法是什么. 在这种情况下,文件保存在包含正在运行的测试的“tests"目录中.我能想到的唯一选择是在每次测试后从测试目录中删除所有 *.pk ..
发布时间:2021-06-17 18:43:53 Python

pyinstaller 和加载泡菜文件

有没有人使用 pyinstaller 从 python 脚本创建 Windows 可执行文件?我正在尝试创建一个加载 pickle 文件但未成功的可执行文件. 进口泡菜文件名='test.sav'尝试:模型 = pickle.load(open(filename, 'rb'))打印('模型加载')除了:print('发生错误.') 当使用 python 3 运行时,它可以正常工作并正确加载 m ..
发布时间:2021-06-17 18:43:50 其他开发

解压保存的 pytorch 模型会引发 AttributeError:尽管添加了内联类定义,但无法在 <module '__main__' 上获取属性 'Net'

我正在尝试在 Flask 应用程序中提供 pytorch 模型.当我早些时候在 jupyter 笔记本上运行此代码时,此代码正在运行,但现在我在虚拟环境中运行它,显然即使类定义就在那里,它也无法获得属性“Net".所有其他类似的问题都告诉我在同一个脚本中添加保存模型的类定义.但它仍然不起作用.火炬版本是 1.0.1(保存的模型和 virtualenv 都在其中进行了训练)我究竟做错了什么?这是我的 ..
发布时间:2021-06-17 18:43:43 Python

鉴于 python 中的泡菜转储,我如何确定使用的协议?

假设我有一个泡菜转储——无论是作为一个文件还是一个字符串——我如何确定用于自动创建泡菜转储的协议? 如果是这样,我是否需要阅读整个转储来找出协议,还是可以在 O(1) 中实现?通过 O(1),我考虑了 pickle 字符串或文件开头的一些标头信息,其读出不需要处理整个转储. 非常感谢! 编辑:我对此有更新,显然下面给出的答案在python 3.4下并不总是有效.如果我只是用协议 ..
发布时间:2021-06-17 18:43:37 Python

如何分块加载 Pickle 文件?

有没有办法分块加载pickle文件? 我知道我们可以将数据保存在 CSV 中并分块加载.但是除了 CSV 之外,是否有任何选项可以以块的形式加载泡菜文件或任何 Python 本机文件? 解决方案 我有一个类似的问题,我写了一个桶文件描述符池,并注意到当我关闭一个文件描述符时我的泡菜文件被损坏了.尽管您可以对打开的文件描述符执行多个 dump() 操作,但随后无法执行 open('fi ..
发布时间:2021-06-17 18:43:35 Python

泡菜转储的多处理队列问题

我已经反复阅读有关多处理模块和队列管理的 Python 文档,但找不到与此问题相关的任何内容,这让我发疯并阻止了我的项目: 我编写了一个“JsonLike"类,它允许我创建一个对象,例如: a = JsonLike()a.john.doe.is.here = 真 ...不考虑中间初始化(非常有用) 下面的代码只是创建了这样一个对象,将它设置并插入到一个数组中,然后尝试将它发送到一个 ..
发布时间:2021-06-17 18:43:28 Python

酸洗图像对象?

我是pickle的完全新手,我有一堆(大约100,000张)图片需要pickle. 它们首先作为图像对象加载,并转换为数据如下: image = {'像素':im.tostring(),'大小':im.size,'模式':im.mode,} 现在如何将它们腌制到一个 pkl 文件中? 解决方案 你可以这样做: file = open('data.pkl', 'wb')# Pic ..
发布时间:2021-06-17 18:43:25 Python

cPickle - 酸洗同一个对象的不同结果

是否有人能够解释此代码片段? 我已经运行了代码,并且评论所说的确实是真的.但是我想了解为什么它是正确的,即为什么 cPickle 会根据引用方式为同一对象输出不同的值. 和引用计数有关系吗?如果是这样,那是不是某种错误 - 即腌制和反序列化的对象将具有异常高的引用计数,并且实际上永远不会被垃圾收集? 解决方案 它正在查看引用计数,来自 cPickle 源: if (Py_RE ..
发布时间:2021-06-17 18:43:22 Python

如何在sklearn中保存自定义转换器?

我无法加载使用 sklearn.externals.joblib.dump 或 pickle.dump 保存的自定义转换器的实例,因为自定义转换器的原始定义当前 python 会话中缺少转换器. 假设在一个 python 会话中,我定义、创建并保存了一个自定义转换器,它也可以在同一个会话中加载: from sklearn.base import TransformerMixin从 skle ..
发布时间:2021-06-17 18:43:19 Python

模块“pickle"没有属性“dump"

进口泡菜伊梅尔达 = ('更多混乱','伊梅尔达·梅','2011',((1, '拉地毯'),(2, '心理'),(3, '混乱'),(4, '肯特镇华尔兹')))使用 open("imelda.pickle", "wb") 作为 pickle_file:pickle.dump(伊梅尔达,pickle_file) 我正在尝试执行此代码,但控制台一直告诉我: 模块 'pickle' 没有属性 ' ..
发布时间:2021-06-17 18:43:16 Python

如何测试文件是否已由pickle创建?

有什么方法可以检查文件是否由 pickle 创建?我可以捕获由 pickle.load 抛出的异常,但没有特定的“非 pickle 文件"异常. 解决方案 Pickle 文件没有标题,因此没有标准的方法来识别它们,除非尝试 unpickle 并查看这样做时是否引发任何异常. 您可以定义自己的增强型协议,其中包含某种标头,方法是将 pickle 中的 Pickler() 和 Unpic ..
发布时间:2021-06-17 18:43:13 Python

为什么我不能在 Python 中腌制错误的回溯?

我已经找到了解决方法,但仍然想知道答案. 解决方案 回溯保存对当前线程上调用的每个函数/方法的堆栈帧的引用,从最顶层的帧到错误被提出.每个堆栈帧还保存对调用堆栈中的每个函数时有效的局部和全局变量的引用. 由于 pickle 无法知道要序列化什么和忽略什么,如果您能够对回溯进行pickle,那么您最终会pickle 整个应用程序状态的移动快照:当pickle 运行时,其他线程可能会正在 ..
发布时间:2021-06-17 18:43:10 Python

使用 Pickle 保存 Numpy 数组

我有一个我想保存的 Numpy 数组 (130,000 x 3),我想使用 Pickle 保存,使用以下代码.但是,我一直在 pkl.load 行收到错误“EOFError:输入不足"或“UnsupportedOperation:读取".这是我第一次使用 Pickle,有什么想法吗? 谢谢, 阿南特 导入pickle为pkl将 numpy 导入为 nparrayInput = np. ..
发布时间:2021-06-17 18:43:08 Python

酸洗 Selenium Webdriver 对象

我想序列化并存储一个 selenium webdriver 对象,以便稍后我可以在代码的其他地方使用它.我正在尝试使用泡菜来做到这一点.如果有另一种方法可以保存 webdriver 对象的状态,那么我可以稍后再次调用它,那就太好了(我不能只是重新加载 url,因为我正在查看的网站是 javascript-heavy当前页面取决于我目前点击的内容). 目前,我有这样的代码. 进口泡菜从硒导入 ..
发布时间:2021-06-17 18:43:04 Python

如何在一个文件中腌制多个对象?

就我而言,我希望将两个单独的列表(使用 pickle.dump())腌制到一个文件中,然后从单独的文件中检索它们,但是当使用 pickle.load 时() 我一直在努力寻找一个列表的结束位置和下一个列表的开始位置,因为我根本不知道如何以一种易于检索的方式 pickle.dump() 它们,即使在浏览了文档之后. 解决方案 pickle 将按照您转储它们的顺序读取它们. 进口泡菜test ..
发布时间:2021-06-17 18:43:01 Python

Python 3.7 错误:不支持的 Pickle 协议 5

我正在尝试从 RLLib (json 没有像这篇文章中显示的那样工作),并得到以下错误: config = pickle.load(open(f"{path}/params.pkl", "rb"))---------------------------------------------------------------------------ValueError 回溯(最近一次调用) ..
发布时间:2021-06-17 18:42:58 Python

Python - 将多个 Pickle 对象加载到单个字典中

所以我的问题是...我有多个 Pickle 对象文件(它们是 Pickled Dictionaries),我想将它们全部加载,但基本上将每个字典合并到一个更大的字典中. 例如 我有 pickle_file1 和 pickle_file2 都包含字典.我想将 pickle_file1 和 pickle_file2 的内容加载到 my_dict_final 中. 编辑根据要求,这是我 ..
发布时间:2021-06-17 18:42:55 Python

在循环中从 Python pickle 文件加载数据?

在一个小型数据采集项目中,我们使用 Python 的 pickle 来存储记录的数据,即对于每个“事件",我们将其添加到输出文件 f 中,使用 pkl.dump(event, f, pkl.HIGHEST_PROTOCOL) where import cPickle as pkl. 在数据分析中,我们读取每个事件,但与普通文件相比,可以以一种相当优雅的方式进行处理: with ope ..
发布时间:2021-06-17 18:42:53 Python