Python pickle的首选(或最常见)文件扩展名


81

有时,我见过.pickle.pck.pcl,和.db对于包含Python的泡菜文件,但我不能确定什么是最常见的或最佳实践。我知道后三个扩展也用于其他用途。

相关的问题是:使用REST API在系统之间发送泡菜时,首选哪种MIME类型?


3
有趣的是,我敢肯定我曾经使用过.pkl。
idjaw

2
由于某种原因,这不在Python 3文档中,而是在Python 2文档中,并指定pkl-> docs.python.org/2/library/pickle.html#example
idjaw

4
尽可能避免泡菜。文档警告您不要使用泡菜,这是有原因的-它不安全,它从来都不是安全的,它也永远不会是安全的。请改用json模块。
KingRadical

@KingRadical您能提供一些替代方法吗?
拉法·诺加莱斯

1
@RafaNogales msgpack似乎是一个很好的二进制替代方法pypi.org/project/u-msgpack-python
giuliano-oliveira

Answers:


90

Python 2

根据Python 2文档,在进行序列化(即写入pickle文件)时,请使用:

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

.pkl使用Python 2时,我会选择扩展名。

Python 3

现在,Python 3文档中的示例.pickle用作序列化的文件扩展名:

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

martineau的注释中发送腌菜时,首选MIME类型:

应用/八位字节流

请参阅用于一字节字节的HTTP“内容类型”是什么?


text/plain根据所使用的pickle协议,可能不起作用-协议版本0是唯一的ASCII码。
martineau '16

2
就是说,application/octet-stream无论采用哪种
martineau '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.