我使用 cPickle 保存程序每次运行的数据集。由于我有时需要在不运行代码的情况下查看数据的轮廓,因此我想要一种简单的方法,只需双击文件即可快速查看内容。我试图避免每次都加载终端并将python指向一个文件,只是为了运行一些print
脚本。
我寻找 Notepad++ 插件,但找不到任何东西。
有一些简单的方法可以做到这一点吗?有没有人有什么建议?
注意:我运行的是 Windows 7。
对于 Python 3.2+/2.7+,您可以__repr__
从命令行查看(的)泡菜:
$ python -c "import pickle; pickle.dump({'hello': 'world'}, open('obj.dat', 'wb'))"
$ python -mpickle obj.dat
{'hello': 'world'}
将它集成到 Windows shell 中应该很容易。
我真的怀疑有什么办法可以做到这一点,因为有了pickle
,你几乎可以打包任何东西。取消腌制时,您需要能够加载在腌制对象时加载的模块等。换句话说,一般来说,为了能够unpickle
做某事,python 需要能够重现程序的“环境”(或至少足够接近的近似值)——加载的模块、全局命名空间中的类等。 . 一般来说,如果没有用户的帮助,这是不可能的。考虑:
import pickle
class Foo(object): pass
a = Foo()
with open('data.pickle','wb') as f:
pickle.dump(a,f)
现在,如果您尝试在单独的脚本中恢复它,python 无法知道 a 的Foo
样子,因此它无法恢复该对象(除非您Foo
在该脚本中定义了合适的对象)。这实际上不是一个可以在没有一些人为干预的情况下完成的过程。
当然,可以尝试一个可以说是有用的特殊情况,即您只是从标准库中腌制内置对象和事物……但我认为您不能编写通用的 unpickler 扩展。
您还可以在终端上创建别名,例如:
alias pvw="python -mpickle "
就我而言:
pvw obj.dat
ID A_ID B_ID PAST_ID
0 20 1008 4771 425
1 20 2000 4771 425
2 20 2015 4771 425