Files
hustoj/web/python-docs/library/persistence.html
2025-03-09 17:10:56 +08:00

327 lines
18 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_CN">
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>数据持久化 &#8212; Python 3.8.20 文档</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../_static/pydoctheme.css" type="text/css" />
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/language_data.js"></script>
<script src="../_static/translations.js"></script>
<script src="../_static/sidebar.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="在 Python 3.8.20 文档 中搜索"
href="../_static/opensearch.xml"/>
<link rel="author" title="关于这些文档" href="../about.html" />
<link rel="index" title="索引" href="../genindex.html" />
<link rel="search" title="搜索" href="../search.html" />
<link rel="copyright" title="版权所有" href="../copyright.html" />
<link rel="next" title="pickle --- Python 对象序列化" href="pickle.html" />
<link rel="prev" title="shutil --- 高阶文件操作" href="shutil.html" />
<link rel="canonical" href="https://docs.python.org/3/library/persistence.html" />
<style>
@media only screen {
table.full-width-table {
width: 100%;
}
}
</style>
<link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
<script type="text/javascript" src="../_static/copybutton.js"></script>
<script type="text/javascript" src="../_static/menu.js"></script>
</head>
<body>
<div class="mobile-nav">
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
<label for="menuToggler" class="toggler__label">
<span></span>
</label>
<nav class="nav-content" role="navigation">
<a href="https://www.python.org/" class="nav-logo">
<img src="../_static/py.svg" alt="Logo"/>
</a>
<div class="version_switcher_placeholder"></div>
<form role="search" class="search" action="../search.html" method="get">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
<path fill-rule="nonzero"
d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" fill="#444"></path>
</svg>
<input type="text" name="q" aria-label="快速搜索"/>
<input type="submit" value="转向"/>
</form>
</nav>
<div class="menu-wrapper">
<nav class="menu" role="navigation" aria-label="main navigation">
<div class="language_switcher_placeholder"></div>
<h4>上一个主题</h4>
<p class="topless"><a href="shutil.html"
title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">shutil</span></code> --- 高阶文件操作</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="pickle.html"
title="下一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code> --- Python 对象序列化</a></p>
<div role="note" aria-label="source link">
<h3>本页</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">报告 Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.8/Doc/library/persistence.rst"
rel="nofollow">显示源代码
</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
<div id="outdated-warning" style="padding: .5em; text-align: center; background-color: #FFBABA; color: #6A0E0E;">
这个文档所针对的是一个已不再受支持的 Python 旧版本。
你应当升级版本,并阅读
<a href="/3/library/persistence.html"> Python 当前稳定版本的文档</a>.
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>导航</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="总目录"
accesskey="I">索引</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python 模块索引"
>模块</a> |</li>
<li class="right" >
<a href="pickle.html" title="pickle --- Python 对象序列化"
accesskey="N">下一页</a> |</li>
<li class="right" >
<a href="shutil.html" title="shutil --- 高阶文件操作"
accesskey="P">上一页</a> |</li>
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.8.20 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Python 标准库</a> &#187;</li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
<input type="submit" value="转向" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
|
</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="data-persistence">
<span id="persistence"></span><h1>数据持久化<a class="headerlink" href="#data-persistence" title="永久链接至标题"></a></h1>
<p>本章中描述的模块支持在磁盘上以持久形式存储 Python 数据。 <a class="reference internal" href="pickle.html#module-pickle" title="pickle: Convert Python objects to streams of bytes and back."><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code></a><a class="reference internal" href="marshal.html#module-marshal" title="marshal: Convert Python objects to streams of bytes and back (with different constraints)."><code class="xref py py-mod docutils literal notranslate"><span class="pre">marshal</span></code></a> 模块可以将许多 Python 数据类型转换为字节流,然后从字节中重新创建对象。 各种与 DBM 相关的模块支持一系列基于散列的文件格式,这些格式存储字符串到其他字符串的映射。</p>
<p>本章中描述的模块列表是:</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="pickle.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code> --- Python 对象序列化</a><ul>
<li class="toctree-l2"><a class="reference internal" href="pickle.html#relationship-to-other-python-modules">与其他 Python 模块间的关系</a><ul>
<li class="toctree-l3"><a class="reference internal" href="pickle.html#comparison-with-marshal"><code class="docutils literal notranslate"><span class="pre">marshal</span></code> 间的关系</a></li>
<li class="toctree-l3"><a class="reference internal" href="pickle.html#comparison-with-json"><code class="docutils literal notranslate"><span class="pre">json</span></code> 模块的比较</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="pickle.html#data-stream-format">数据流格式</a></li>
<li class="toctree-l2"><a class="reference internal" href="pickle.html#module-interface">模块接口</a></li>
<li class="toctree-l2"><a class="reference internal" href="pickle.html#what-can-be-pickled-and-unpickled">可以被封存/解封的对象</a></li>
<li class="toctree-l2"><a class="reference internal" href="pickle.html#pickling-class-instances">封存类实例</a><ul>
<li class="toctree-l3"><a class="reference internal" href="pickle.html#persistence-of-external-objects">持久化外部对象</a></li>
<li class="toctree-l3"><a class="reference internal" href="pickle.html#dispatch-tables">Dispatch 表</a></li>
<li class="toctree-l3"><a class="reference internal" href="pickle.html#handling-stateful-objects">处理有状态的对象</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="pickle.html#custom-reduction-for-types-functions-and-other-objects">类型,函数和其他对象的自定义归约</a></li>
<li class="toctree-l2"><a class="reference internal" href="pickle.html#out-of-band-buffers">外部缓冲区</a><ul>
<li class="toctree-l3"><a class="reference internal" href="pickle.html#provider-api">提供方 API</a></li>
<li class="toctree-l3"><a class="reference internal" href="pickle.html#consumer-api">使用方 API</a></li>
<li class="toctree-l3"><a class="reference internal" href="pickle.html#example">示例</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="pickle.html#restricting-globals">限制全局变量</a></li>
<li class="toctree-l2"><a class="reference internal" href="pickle.html#performance">性能</a></li>
<li class="toctree-l2"><a class="reference internal" href="pickle.html#examples">例子</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="copyreg.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">copyreg</span></code> --- 注册配合 <code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code> 模块使用的函数</a><ul>
<li class="toctree-l2"><a class="reference internal" href="copyreg.html#example">示例</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="shelve.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">shelve</span></code> --- Python 对象持久化</a><ul>
<li class="toctree-l2"><a class="reference internal" href="shelve.html#restrictions">限制</a></li>
<li class="toctree-l2"><a class="reference internal" href="shelve.html#example">示例</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="marshal.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">marshal</span></code> --- 内部 Python 对象序列化</a></li>
<li class="toctree-l1"><a class="reference internal" href="dbm.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm</span></code> --- Unix &quot;数据库&quot; 接口</a><ul>
<li class="toctree-l2"><a class="reference internal" href="dbm.html#module-dbm.gnu"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.gnu</span></code> --- GNU 对 dbm 的重解析</a></li>
<li class="toctree-l2"><a class="reference internal" href="dbm.html#module-dbm.ndbm"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.ndbm</span></code> --- 基于 ndbm 的接口</a></li>
<li class="toctree-l2"><a class="reference internal" href="dbm.html#module-dbm.dumb"><code class="xref py py-mod docutils literal notranslate"><span class="pre">dbm.dumb</span></code> --- 便携式 DBM 实现</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="sqlite3.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code> --- SQLite 数据库 DB-API 2.0 接口模块</a><ul>
<li class="toctree-l2"><a class="reference internal" href="sqlite3.html#module-functions-and-constants">模块函数和常量</a></li>
<li class="toctree-l2"><a class="reference internal" href="sqlite3.html#connection-objects">连接对象Connection</a></li>
<li class="toctree-l2"><a class="reference internal" href="sqlite3.html#cursor-objects">Cursor 对象</a></li>
<li class="toctree-l2"><a class="reference internal" href="sqlite3.html#row-objects">行对象</a></li>
<li class="toctree-l2"><a class="reference internal" href="sqlite3.html#exceptions">异常</a></li>
<li class="toctree-l2"><a class="reference internal" href="sqlite3.html#sqlite-and-python-types">SQLite 与 Python 类型</a><ul>
<li class="toctree-l3"><a class="reference internal" href="sqlite3.html#introduction">概述</a></li>
<li class="toctree-l3"><a class="reference internal" href="sqlite3.html#using-adapters-to-store-additional-python-types-in-sqlite-databases">使用适配器将额外的 Python 类型保存在 SQLite 数据库中。</a><ul>
<li class="toctree-l4"><a class="reference internal" href="sqlite3.html#letting-your-object-adapt-itself">让对象自行适配</a></li>
<li class="toctree-l4"><a class="reference internal" href="sqlite3.html#registering-an-adapter-callable">注册可调用的适配器</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="sqlite3.html#converting-sqlite-values-to-custom-python-types">将SQLite 值转换为自定义Python 类型</a></li>
<li class="toctree-l3"><a class="reference internal" href="sqlite3.html#default-adapters-and-converters">默认适配器和转换器</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="sqlite3.html#controlling-transactions">控制事务</a></li>
<li class="toctree-l2"><a class="reference internal" href="sqlite3.html#using-sqlite3-efficiently">有效使用 <code class="xref py py-mod docutils literal notranslate"><span class="pre">sqlite3</span></code></a><ul>
<li class="toctree-l3"><a class="reference internal" href="sqlite3.html#using-shortcut-methods">使用快捷方式</a></li>
<li class="toctree-l3"><a class="reference internal" href="sqlite3.html#accessing-columns-by-name-instead-of-by-index">通过名称而不是索引访问索引</a></li>
<li class="toctree-l3"><a class="reference internal" href="sqlite3.html#using-the-connection-as-a-context-manager">使用连接作为上下文管理器</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</section>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<h4>上一个主题</h4>
<p class="topless"><a href="shutil.html"
title="上一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">shutil</span></code> --- 高阶文件操作</a></p>
<h4>下一个主题</h4>
<p class="topless"><a href="pickle.html"
title="下一章"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pickle</span></code> --- Python 对象序列化</a></p>
<div role="note" aria-label="source link">
<h3>本页</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">报告 Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/3.8/Doc/library/persistence.rst"
rel="nofollow">显示源代码
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>导航</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="总目录"
>索引</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python 模块索引"
>模块</a> |</li>
<li class="right" >
<a href="pickle.html" title="pickle --- Python 对象序列化"
>下一页</a> |</li>
<li class="right" >
<a href="shutil.html" title="shutil --- 高阶文件操作"
>上一页</a> |</li>
<li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.8.20 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" >Python 标准库</a> &#187;</li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="快速搜索" aria-label="快速搜索" type="text" name="q" />
<input type="submit" value="转向" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
|
</li>
</ul>
</div>
<div class="footer">
&copy; <a href="../copyright.html">版权所有</a> 2001-2024, Python Software Foundation.
<br />
This page is licensed under the Python Software Foundation License Version 2.
<br />
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
<br />
<br />
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br />
<br />
最后更新于 12月 09, 2024.
<a href="https://docs.python.org/3/bugs.html">Found a bug</a>?
<br />
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 2.4.4.
</div>
</body>
</html>