我已经查看了 Python 文档 提供的信息,但我仍然有点困惑。有人可以发布编写新文件然后使用 pickle 将字典转储到其中的示例代码吗?
原文由 Chachmu 发布,翻译遵循 CC BY-SA 4.0 许可协议
我已经查看了 Python 文档 提供的信息,但我仍然有点困惑。有人可以发布编写新文件然后使用 pickle 将字典转储到其中的示例代码吗?
原文由 Chachmu 发布,翻译遵循 CC BY-SA 4.0 许可协议
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)
HIGHEST_PROTOCOL
的优点是文件变小了。这使得 unpickling 有时更快。
重要提示:pickle 的最大文件大小约为 2GB。
import mpu
your_data = {'foo': 'bar'}
mpu.io.write('filename.pickle', data)
unserialized_data = mpu.io.read('filename.pickle')
对于您的应用程序,以下内容可能很重要:
另请参阅: 数据序列化格式的比较
如果您更愿意寻找一种制作配置文件的方法,您可能需要阅读我的短文 Configuration files in Python
原文由 Martin Thoma 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
试试这个:
上面的解决方案没有任何特定于
dict
对象的解决方案。同样的方法将适用于许多 Python 对象,包括任意类的实例和任意复杂的数据结构嵌套。例如,用这些行替换第二行:也会产生
True
的结果。有些对象由于其性质而无法腌制。例如,pickle 一个包含打开文件句柄的结构是没有意义的。