Tag: 泡菜

在Python中保存一个字典到一个文件(替代pickle)?

无论如何,我终于和腌菜结束了 好,所以在我问另外一个问题时,我被告知使用pickle将字典保存到一个文件。 我试图保存到文件的字典是 members = {'Starspy' : 'SHSN4N', 'Test' : 'Test1'} 当腌菜保存到文件…这是格式 (dp0 S'Test' p1 S'Test1' p2 sS'Test2' p3 S'Test2' p4 sS'Starspy' p5 S'SHSN4N' p6 s. 你能给我一个替代方法来保存string的文件? 这是我希望保存的格式 members = {'Starspy':'SHSN4N','Test':'Test1'} 完整代码: import sys import shutil import os import pickle tmp = os.path.isfile("members-tmp.pkl") if tmp == True: os.remove("members-tmp.pkl") shutil.copyfile("members.pkl", "members-tmp.pkl") pkl_file = open('members-tmp.pkl', 'rb') members […]

在磁盘上保存numpy数组的最佳方法

我正在寻找一个快速的方法来保存大的numpy数组。 我想将它们以二进制格式保存到磁盘,然后相对快速地将它们读回到内存中。 cPickle不够快,不幸的是。 我发现numpy.savez和numpy.load 。 但奇怪的是,numpy.load将一个npy文件加载到“memory-map”中。 这意味着对数组的操作确实很慢。 例如,这样的事情会很慢: #!/usr/bin/python import numpy as np; import time; from tempfile import TemporaryFile n = 10000000; a = np.arange(n) b = np.arange(n) * 10 c = np.arange(n) * -0.5 file = TemporaryFile() np.savez(file,a = a, b = b, c = c); file.seek(0) t = time.time() z = np.load(file) print […]

Python序列化 – 为什么咸菜?

我明白,Python酸洗是一种“存储”Python对象的方式,它尊重对象编程 – 与用txt文件或DB编写的输出不同。 你有更多的细节或参考以下几点: 腌渍物品在哪里“储存”? 为什么酸洗保存对象表示比在DB中存储更多? 我可以从一个Python shell会话检索pickled对象到另一个吗? 序列化有用的时候有没有重要的例子? 序列化与泡菜暗示数据“压缩”? 换句话说,我正在寻找一个关于酸洗的文档–Python.doc解释了如何实现pickle,但似乎没有详细介绍序列化的使用和必要性。

我怎样才能用泡菜来保存字典?

我已经浏览了Python文档给出的信息,但是我仍然有点困惑。 有人可以发布示例代码,将写入一个新的文件,然后使用pickle转储字典到它?

多处理:如何在类中定义的函数上使用Pool.map?

当我运行如下的东西时: from multiprocessing import Pool p = Pool(5) def f(x): return x*x p.map(f, [1,2,3]) 它工作正常。 但是,把它作为一个类的function: class calculate(object): def run(self): def f(x): return x*x p = Pool() return p.map(f, [1,2,3]) cl = calculate() print cl.run() 给我以下错误: Exception in thread Thread-1: Traceback (most recent call last): File "/sw/lib/python2.6/threading.py", line 532, in __bootstrap_inner self.run() File "/sw/lib/python2.6/threading.py", line […]

Python多处理酸洗错误

对不起,我不能用更简单的例子重现错误,而且我的代码太复杂了,不能发布。 如果我在IPython shell而不是普通的python中运行这个程序,那么结果会很好。 我查了一下以前有关这个问题的笔记。 它们都是由使用pool来调用类函数中定义的函数引起的。 但是对我来说情况并非如此。 Exception in thread Thread-3: Traceback (most recent call last): File "/usr/lib64/python2.7/threading.py", line 552, in __bootstrap_inner self.run() File "/usr/lib64/python2.7/threading.py", line 505, in run self.__target(*self.__args, **self.__kwargs) File "/usr/lib64/python2.7/multiprocessing/pool.py", line 313, in _handle_tasks put(task) PicklingError: Can't pickle <type 'function'>: attribute lookup __builtin__.function failed 我将不胜感激任何帮助。 更新:我腌菜function定义在模块的顶层。 虽然它调用一个包含嵌套函数的函数。 即,f()调用g()调用h(),它有一个嵌套的函数i(),我正在调用pool.apply_async(f)。 f(),g(),h()都是在顶层定义的。 我尝试了这个模式的更简单的例子,它虽然工作。