pickletools- pickle开发人员的工具 – Python语言服务(Python教程)(参考资料)
pickletools
– 用于泡菜开发者的工具
源代码: Lib / pickletools.py
这个模块包含与pickle
模块的私密细节相关的各种常量,关于实施的一些冗长的评论,以及用于分析腌制数据的有用功能。这个模块的内容对于pickle
工作的Python核心开发人员很有用; pickle
模块的普通用户可能找不到pickletools
模块相关的
命令行用法
版本3.2.
中的新增内容从命令行调用时,python -m pickletools
会反汇编一个或多个pickle文件的内容。请注意,如果您想要查看存储在pickle中的Python对象而不是pickle格式的详细信息,则可能需要使用-m pickle
。但是,当您要检查的pickle文件来自不受信任的源时,-m pickletools
是一个更安全的选项,因为它不执行pickle bytecode.
例如,用文件(1, 2)
在文件中腌制x.pickle
:
$ python -m pickle x.pickle
(1, 2)
$ python -m pickletools x.pickle
0: \x80 PROTO 3
2: K BININT1 1
4: K BININT1 2
6: \x86 TUPLE2
7: q BINPUT 0
9: . STOP
highest protocol among opcodes = 2
程序界面
pickletools.
dis
(pickle, out=None, memo=None, indentlevel=4, annotate=0)- 将pickle的符号反汇编输出到文件对象out,默认为
sys.stdout
. pickle可以是astring或类文件对象。memo可以是一个Python词典,它将被用作pickle的备忘录;它可用于在samepickler创建的多个pickle之间执行disassemblies。连续的水平,由表示MARK
在流中的操作码,由indentlevel空格缩进。如果给annotate赋予非零值,则输出中的每个操作码都用简短描述注释。的价值 annotate用作注释应该开始的列的提示.新版本3.2: annotate论据
pickletools.
genops
// (pickle)- 提供迭代器在泡菜的所有操作码中,返回
(opcode, arg, pos)
三倍的序列。opcode是OpcodeInfo
类的一个实例;arg是操作码参数的解码值,作为Python对象;pos是这个操作码所在的位置.pickle可以是一个字符串或类似文件的对象.
pickletools.
optimize
(picklestring)- 返回一个新的消除未使用的
PUT
操作码。优化的泡菜更短,传输时间更短,存储空间更小,更有效地破坏.
评论被关闭。