gooderp18绿色标准版
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

365 lines
21KB

  1. <!DOCTYPE html>
  2. <html lang="en" data-content_root="../">
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
  6. <meta property="og:title" content="quopri — Encode and decode MIME quoted-printable data" />
  7. <meta property="og:type" content="website" />
  8. <meta property="og:url" content="https://docs.python.org/3/library/quopri.html" />
  9. <meta property="og:site_name" content="Python documentation" />
  10. <meta property="og:description" content="Source code: Lib/quopri.py This module performs quoted-printable transport encoding and decoding, as defined in RFC 1521: “MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Spec..." />
  11. <meta property="og:image" content="https://docs.python.org/3/_static/og-image.png" />
  12. <meta property="og:image:alt" content="Python documentation" />
  13. <meta name="description" content="Source code: Lib/quopri.py This module performs quoted-printable transport encoding and decoding, as defined in RFC 1521: “MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Spec..." />
  14. <meta property="og:image:width" content="200" />
  15. <meta property="og:image:height" content="200" />
  16. <meta name="theme-color" content="#3776ab" />
  17. <title>quopri — Encode and decode MIME quoted-printable data &#8212; Python 3.12.3 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
  18. <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=80d5e7a1" />
  19. <link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=bb723527" />
  20. <link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=b20cc3f5" />
  21. <script src="../_static/documentation_options.js?v=2c828074"></script>
  22. <script src="../_static/doctools.js?v=888ff710"></script>
  23. <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
  24. <script src="../_static/sidebar.js"></script>
  25. <link rel="search" type="application/opensearchdescription+xml"
  26. title="Search within Python 3.12.3 documentation"
  27. href="../_static/opensearch.xml"/>
  28. <link rel="author" title="About these documents" href="../about.html" />
  29. <link rel="index" title="Index" href="../genindex.html" />
  30. <link rel="search" title="Search" href="../search.html" />
  31. <link rel="copyright" title="Copyright" href="../copyright.html" />
  32. <link rel="next" title="Structured Markup Processing Tools" href="markup.html" />
  33. <link rel="prev" title="binascii — Convert between binary and ASCII" href="binascii.html" />
  34. <link rel="canonical" href="https://docs.python.org/3/library/quopri.html" />
  35. <style>
  36. @media only screen {
  37. table.full-width-table {
  38. width: 100%;
  39. }
  40. }
  41. </style>
  42. <link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
  43. <link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
  44. <script type="text/javascript" src="../_static/copybutton.js"></script>
  45. <script type="text/javascript" src="../_static/menu.js"></script>
  46. <script type="text/javascript" src="../_static/search-focus.js"></script>
  47. <script type="text/javascript" src="../_static/themetoggle.js"></script>
  48. </head>
  49. <body>
  50. <div class="mobile-nav">
  51. <input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
  52. aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
  53. <nav class="nav-content" role="navigation">
  54. <label for="menuToggler" class="toggler__label">
  55. <span></span>
  56. </label>
  57. <span class="nav-items-wrapper">
  58. <a href="https://www.python.org/" class="nav-logo">
  59. <img src="../_static/py.svg" alt="Python logo"/>
  60. </a>
  61. <span class="version_switcher_placeholder"></span>
  62. <form role="search" class="search" action="../search.html" method="get">
  63. <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
  64. <path fill-rule="nonzero" fill="currentColor" 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"></path>
  65. </svg>
  66. <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" />
  67. <input type="submit" value="Go"/>
  68. </form>
  69. </span>
  70. </nav>
  71. <div class="menu-wrapper">
  72. <nav class="menu" role="navigation" aria-label="main navigation">
  73. <div class="language_switcher_placeholder"></div>
  74. <label class="theme-selector-label">
  75. Theme
  76. <select class="theme-selector" oninput="activateTheme(this.value)">
  77. <option value="auto" selected>Auto</option>
  78. <option value="light">Light</option>
  79. <option value="dark">Dark</option>
  80. </select>
  81. </label>
  82. <div>
  83. <h4>Previous topic</h4>
  84. <p class="topless"><a href="binascii.html"
  85. title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">binascii</span></code> — Convert between binary and ASCII</a></p>
  86. </div>
  87. <div>
  88. <h4>Next topic</h4>
  89. <p class="topless"><a href="markup.html"
  90. title="next chapter">Structured Markup Processing Tools</a></p>
  91. </div>
  92. <div role="note" aria-label="source link">
  93. <h3>This Page</h3>
  94. <ul class="this-page-menu">
  95. <li><a href="../bugs.html">Report a Bug</a></li>
  96. <li>
  97. <a href="https://github.com/python/cpython/blob/main/Doc/library/quopri.rst"
  98. rel="nofollow">Show Source
  99. </a>
  100. </li>
  101. </ul>
  102. </div>
  103. </nav>
  104. </div>
  105. </div>
  106. <div class="related" role="navigation" aria-label="related navigation">
  107. <h3>Navigation</h3>
  108. <ul>
  109. <li class="right" style="margin-right: 10px">
  110. <a href="../genindex.html" title="General Index"
  111. accesskey="I">index</a></li>
  112. <li class="right" >
  113. <a href="../py-modindex.html" title="Python Module Index"
  114. >modules</a> |</li>
  115. <li class="right" >
  116. <a href="markup.html" title="Structured Markup Processing Tools"
  117. accesskey="N">next</a> |</li>
  118. <li class="right" >
  119. <a href="binascii.html" title="binascii — Convert between binary and ASCII"
  120. accesskey="P">previous</a> |</li>
  121. <li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"/></li>
  122. <li><a href="https://www.python.org/">Python</a> &#187;</li>
  123. <li class="switchers">
  124. <div class="language_switcher_placeholder"></div>
  125. <div class="version_switcher_placeholder"></div>
  126. </li>
  127. <li>
  128. </li>
  129. <li id="cpython-language-and-version">
  130. <a href="../index.html">3.12.3 Documentation</a> &#187;
  131. </li>
  132. <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
  133. <li class="nav-item nav-item-2"><a href="netdata.html" accesskey="U">Internet Data Handling</a> &#187;</li>
  134. <li class="nav-item nav-item-this"><a href=""><code class="xref py py-mod docutils literal notranslate"><span class="pre">quopri</span></code> — Encode and decode MIME quoted-printable data</a></li>
  135. <li class="right">
  136. <div class="inline-search" role="search">
  137. <form class="inline-search" action="../search.html" method="get">
  138. <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" />
  139. <input type="submit" value="Go" />
  140. </form>
  141. </div>
  142. |
  143. </li>
  144. <li class="right">
  145. <label class="theme-selector-label">
  146. Theme
  147. <select class="theme-selector" oninput="activateTheme(this.value)">
  148. <option value="auto" selected>Auto</option>
  149. <option value="light">Light</option>
  150. <option value="dark">Dark</option>
  151. </select>
  152. </label> |</li>
  153. </ul>
  154. </div>
  155. <div class="document">
  156. <div class="documentwrapper">
  157. <div class="bodywrapper">
  158. <div class="body" role="main">
  159. <section id="module-quopri">
  160. <span id="quopri-encode-and-decode-mime-quoted-printable-data"></span><h1><a class="reference internal" href="#module-quopri" title="quopri: Encode and decode files using the MIME quoted-printable encoding."><code class="xref py py-mod docutils literal notranslate"><span class="pre">quopri</span></code></a> — Encode and decode MIME quoted-printable data<a class="headerlink" href="#module-quopri" title="Link to this heading">¶</a></h1>
  161. <p><strong>Source code:</strong> <a class="reference external" href="https://github.com/python/cpython/tree/3.12/Lib/quopri.py">Lib/quopri.py</a></p>
  162. <hr class="docutils" id="index-0" />
  163. <p>This module performs quoted-printable transport encoding and decoding, as
  164. defined in <span class="target" id="index-1"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1521.html"><strong>RFC 1521</strong></a>: “MIME (Multipurpose Internet Mail Extensions) Part One:
  165. Mechanisms for Specifying and Describing the Format of Internet Message Bodies”.
  166. The quoted-printable encoding is designed for data where there are relatively
  167. few nonprintable characters; the base64 encoding scheme available via the
  168. <a class="reference internal" href="base64.html#module-base64" title="base64: RFC 4648: Base16, Base32, Base64 Data Encodings; Base85 and Ascii85"><code class="xref py py-mod docutils literal notranslate"><span class="pre">base64</span></code></a> module is more compact if there are many such characters, as when
  169. sending a graphics file.</p>
  170. <dl class="py function">
  171. <dt class="sig sig-object py" id="quopri.decode">
  172. <span class="sig-prename descclassname"><span class="pre">quopri.</span></span><span class="sig-name descname"><span class="pre">decode</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">header</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quopri.decode" title="Link to this definition">¶</a></dt>
  173. <dd><p>Decode the contents of the <em>input</em> file and write the resulting decoded binary
  174. data to the <em>output</em> file. <em>input</em> and <em>output</em> must be <a class="reference internal" href="../glossary.html#term-file-object"><span class="xref std std-term">binary file objects</span></a>. If the optional argument <em>header</em> is present and true, underscore
  175. will be decoded as space. This is used to decode “Q”-encoded headers as
  176. described in <span class="target" id="index-2"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1522.html"><strong>RFC 1522</strong></a>: “MIME (Multipurpose Internet Mail Extensions)
  177. Part Two: Message Header Extensions for Non-ASCII Text”.</p>
  178. </dd></dl>
  179. <dl class="py function">
  180. <dt class="sig sig-object py" id="quopri.encode">
  181. <span class="sig-prename descclassname"><span class="pre">quopri.</span></span><span class="sig-name descname"><span class="pre">encode</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">input</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">output</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">quotetabs</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">header</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quopri.encode" title="Link to this definition">¶</a></dt>
  182. <dd><p>Encode the contents of the <em>input</em> file and write the resulting quoted-printable
  183. data to the <em>output</em> file. <em>input</em> and <em>output</em> must be
  184. <a class="reference internal" href="../glossary.html#term-file-object"><span class="xref std std-term">binary file objects</span></a>. <em>quotetabs</em>, a
  185. non-optional flag which controls whether to encode embedded spaces
  186. and tabs; when true it encodes such embedded whitespace, and when
  187. false it leaves them unencoded.
  188. Note that spaces and tabs appearing at the end of lines are always encoded,
  189. as per <span class="target" id="index-3"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1521.html"><strong>RFC 1521</strong></a>. <em>header</em> is a flag which controls if spaces are encoded
  190. as underscores as per <span class="target" id="index-4"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc1522.html"><strong>RFC 1522</strong></a>.</p>
  191. </dd></dl>
  192. <dl class="py function">
  193. <dt class="sig sig-object py" id="quopri.decodestring">
  194. <span class="sig-prename descclassname"><span class="pre">quopri.</span></span><span class="sig-name descname"><span class="pre">decodestring</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">s</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">header</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quopri.decodestring" title="Link to this definition">¶</a></dt>
  195. <dd><p>Like <a class="reference internal" href="#quopri.decode" title="quopri.decode"><code class="xref py py-func docutils literal notranslate"><span class="pre">decode()</span></code></a>, except that it accepts a source <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> and
  196. returns the corresponding decoded <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a>.</p>
  197. </dd></dl>
  198. <dl class="py function">
  199. <dt class="sig sig-object py" id="quopri.encodestring">
  200. <span class="sig-prename descclassname"><span class="pre">quopri.</span></span><span class="sig-name descname"><span class="pre">encodestring</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">s</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">quotetabs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">header</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#quopri.encodestring" title="Link to this definition">¶</a></dt>
  201. <dd><p>Like <a class="reference internal" href="#quopri.encode" title="quopri.encode"><code class="xref py py-func docutils literal notranslate"><span class="pre">encode()</span></code></a>, except that it accepts a source <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a> and
  202. returns the corresponding encoded <a class="reference internal" href="stdtypes.html#bytes" title="bytes"><code class="xref py py-class docutils literal notranslate"><span class="pre">bytes</span></code></a>. By default, it sends a
  203. <code class="docutils literal notranslate"><span class="pre">False</span></code> value to <em>quotetabs</em> parameter of the <a class="reference internal" href="#quopri.encode" title="quopri.encode"><code class="xref py py-func docutils literal notranslate"><span class="pre">encode()</span></code></a> function.</p>
  204. </dd></dl>
  205. <div class="admonition seealso">
  206. <p class="admonition-title">See also</p>
  207. <dl class="simple">
  208. <dt>Module <a class="reference internal" href="base64.html#module-base64" title="base64: RFC 4648: Base16, Base32, Base64 Data Encodings; Base85 and Ascii85"><code class="xref py py-mod docutils literal notranslate"><span class="pre">base64</span></code></a></dt><dd><p>Encode and decode MIME base64 data</p>
  209. </dd>
  210. </dl>
  211. </div>
  212. </section>
  213. <div class="clearer"></div>
  214. </div>
  215. </div>
  216. </div>
  217. <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
  218. <div class="sphinxsidebarwrapper">
  219. <div>
  220. <h4>Previous topic</h4>
  221. <p class="topless"><a href="binascii.html"
  222. title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">binascii</span></code> — Convert between binary and ASCII</a></p>
  223. </div>
  224. <div>
  225. <h4>Next topic</h4>
  226. <p class="topless"><a href="markup.html"
  227. title="next chapter">Structured Markup Processing Tools</a></p>
  228. </div>
  229. <div role="note" aria-label="source link">
  230. <h3>This Page</h3>
  231. <ul class="this-page-menu">
  232. <li><a href="../bugs.html">Report a Bug</a></li>
  233. <li>
  234. <a href="https://github.com/python/cpython/blob/main/Doc/library/quopri.rst"
  235. rel="nofollow">Show Source
  236. </a>
  237. </li>
  238. </ul>
  239. </div>
  240. </div>
  241. <div id="sidebarbutton" title="Collapse sidebar">
  242. <span>«</span>
  243. </div>
  244. </div>
  245. <div class="clearer"></div>
  246. </div>
  247. <div class="related" role="navigation" aria-label="related navigation">
  248. <h3>Navigation</h3>
  249. <ul>
  250. <li class="right" style="margin-right: 10px">
  251. <a href="../genindex.html" title="General Index"
  252. >index</a></li>
  253. <li class="right" >
  254. <a href="../py-modindex.html" title="Python Module Index"
  255. >modules</a> |</li>
  256. <li class="right" >
  257. <a href="markup.html" title="Structured Markup Processing Tools"
  258. >next</a> |</li>
  259. <li class="right" >
  260. <a href="binascii.html" title="binascii — Convert between binary and ASCII"
  261. >previous</a> |</li>
  262. <li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"/></li>
  263. <li><a href="https://www.python.org/">Python</a> &#187;</li>
  264. <li class="switchers">
  265. <div class="language_switcher_placeholder"></div>
  266. <div class="version_switcher_placeholder"></div>
  267. </li>
  268. <li>
  269. </li>
  270. <li id="cpython-language-and-version">
  271. <a href="../index.html">3.12.3 Documentation</a> &#187;
  272. </li>
  273. <li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
  274. <li class="nav-item nav-item-2"><a href="netdata.html" >Internet Data Handling</a> &#187;</li>
  275. <li class="nav-item nav-item-this"><a href=""><code class="xref py py-mod docutils literal notranslate"><span class="pre">quopri</span></code> — Encode and decode MIME quoted-printable data</a></li>
  276. <li class="right">
  277. <div class="inline-search" role="search">
  278. <form class="inline-search" action="../search.html" method="get">
  279. <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" />
  280. <input type="submit" value="Go" />
  281. </form>
  282. </div>
  283. |
  284. </li>
  285. <li class="right">
  286. <label class="theme-selector-label">
  287. Theme
  288. <select class="theme-selector" oninput="activateTheme(this.value)">
  289. <option value="auto" selected>Auto</option>
  290. <option value="light">Light</option>
  291. <option value="dark">Dark</option>
  292. </select>
  293. </label> |</li>
  294. </ul>
  295. </div>
  296. <div class="footer">
  297. &copy;
  298. <a href="../copyright.html">
  299. Copyright
  300. </a>
  301. 2001-2024, Python Software Foundation.
  302. <br />
  303. This page is licensed under the Python Software Foundation License Version 2.
  304. <br />
  305. Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
  306. <br />
  307. See <a href="/license.html">History and License</a> for more information.<br />
  308. <br />
  309. The Python Software Foundation is a non-profit corporation.
  310. <a href="https://www.python.org/psf/donations/">Please donate.</a>
  311. <br />
  312. <br />
  313. Last updated on Apr 09, 2024 (13:47 UTC).
  314. <a href="/bugs.html">Found a bug</a>?
  315. <br />
  316. Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.2.6.
  317. </div>
  318. </body>
  319. </html>
上海开阖软件有限公司 沪ICP备12045867号-1