<pre><code>import pickle
your_data = {'foo': 'bar'}
# Store data (serialize)
with open('filename.pickle', 'wb') as handle:
pickle.dump(your_data, handle, protocol=pickle.HIGHEST_PROTOCOL)
# Load data (deserialize)
with open('filename.pickle', 'rb') as handle:
unserialized_data = pickle.load(handle)
print(your_data == unserialized_data)
</code></pre>
<p><code>HIGHEST_PROTOCOL</code>的优点是文件变小。这有时会使脱粘更快。</p>
<p><strong>重要提示</strong>:pickle的最大文件大小约为2GB。</p>
<h2>替代方式</h2>
<pre><code>import mpu
your_data = {'foo': 'bar'}
mpu.io.write('filename.pickle', data)
unserialized_data = mpu.io.read('filename.pickle')
</code></pre>
<h2>替代格式</h2>
<ul>
<li>CSV:超简单格式(<a href="https://stackoverflow.com/a/41585079/562769">read & write</a>)</li>
<li>JSON:很适合编写人类可读的数据;非常常用(<a href="https://stackoverflow.com/a/37795053/562769">read & write</a>)</li>
<li>YAML:YAML是JSON的超集,但更容易阅读(<a href="https://stackoverflow.com/a/42054860/562769">read & write</a>,<a href="https://stackoverflow.com/a/1729545/562769">comparison of JSON and YAML</a>)</li>
<li>pickle:Python序列化格式(<a href="https://stackoverflow.com/a/33245595/562769">read & write</a>)</li>
<li><a href="http://msgpack.org/" rel="noreferrer">MessagePack</a>(<a href="https://pypi.python.org/pypi/msgpack-python" rel="noreferrer">Python package</a>):更紧凑的表示(<a href="https://stackoverflow.com/q/43442194/562769">read & write</a>)</li>
<li><a href="https://en.wikipedia.org/wiki/Hierarchical_Data_Format" rel="noreferrer">HDF5</a>(<a href="http://docs.h5py.org/en/latest/quick.html" rel="noreferrer">Python package</a>):很适合矩阵(<a href="https://stackoverflow.com/a/41586571/562769">read & write</a>)</li>
<li>XML:也存在*叹息*(<a href="https://stackoverflow.com/a/1912483/562769">read</a>&;<a href="https://stackoverflow.com/a/3605831/562769">write</a>)</li>
</ul>
<p>对于您的应用程序,以下内容可能很重要:</p>
<ul>
<li>其他编程语言支持</li>
<li>读写表现</li>
<li>紧凑性(文件大小)</li>
</ul>
<p>另请参见:<a href="https://en.wikipedia.org/wiki/Comparison_of_data_serialization_formats" rel="noreferrer">Comparison of data serialization formats</a></p>
<p>如果您正在寻找创建配置文件的方法,那么您可能需要阅读我的短文<a href="https://martin-thoma.com/configuration-files-in-python/" rel="noreferrer">Configuration files in Python</a></p>