2019-04-08 23:22:26 +08:00

1 line
7.1 KiB
HTML
Raw 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.

<div class="body" role="main"><div class="section" id="module-netrc"><h1><span class="yiyi-st" id="yiyi-10">14.3. <a class="reference internal" href="#module-netrc" title="netrc: Loading of .netrc files."><code class="xref py py-mod docutils literal"><span class="pre">netrc</span></code></a> - netrc文件处理</span></h1><p><span class="yiyi-st" id="yiyi-11"><strong>源代码:</strong> <a class="reference external" href="https://hg.python.org/cpython/file/3.5/Lib/netrc.py">Lib / netrc.py</a></span></p><p><span class="yiyi-st" id="yiyi-12"><a class="reference internal" href="#module-netrc" title="netrc: Loading of .netrc files."><code class="xref py py-class docutils literal"><span class="pre">netrc</span></code></a>类解析并封装了Unix <strong class="program">ftp</strong>程序和其他FTP客户端使用的netrc文件格式。</span></p><dl class="class"><dt id="netrc.netrc"><span class="yiyi-st" id="yiyi-13"> <em class="property">class </em><code class="descclassname">netrc.</code><code class="descname">netrc</code><span class="sig-paren">(</span><span class="optional">[</span><em>file</em><span class="optional">]</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-14">A <a class="reference internal" href="#module-netrc" title="netrc: Loading of .netrc files."><code class="xref py py-class docutils literal"><span class="pre">netrc</span></code></a>实例或子类实例封装了来自netrc文件的数据。</span><span class="yiyi-st" id="yiyi-15">初始化参数(如果存在)指定要解析的文件。</span><span class="yiyi-st" id="yiyi-16">如果没有给出参数,将读取用户主目录中的文件<code class="file docutils literal"><span class="pre">.netrc</span></code></span><span class="yiyi-st" id="yiyi-17">解析错误将引发具有包括文件名,行号和终止令牌的诊断信息的<a class="reference internal" href="#netrc.NetrcParseError" title="netrc.NetrcParseError"><code class="xref py py-exc docutils literal"><span class="pre">NetrcParseError</span></code></a></span><span class="yiyi-st" id="yiyi-18">如果在POSIX系统上没有指定参数则如果文件所有权或权限不安全由用户拥有<code class="file docutils literal"><span class="pre">.netrc</span></code>文件中密码的存在将引发<a class="reference internal" href="#netrc.NetrcParseError" title="netrc.NetrcParseError"><code class="xref py py-exc docutils literal"><span class="pre">NetrcParseError</span></code></a>除了运行该进程的用户,或可由任何其他用户读或写的访问)。</span><span class="yiyi-st" id="yiyi-19">这实现了等同于ftp和使用<code class="file docutils literal"><span class="pre">.netrc</span></code>的其他程序的安全行为。</span></p><div class="versionchanged"><p><span class="yiyi-st" id="yiyi-20"><span class="versionmodified">在版本3.4中更改:</span>添加了POSIX权限检查。</span></p></div></dd></dl><dl class="exception"><dt id="netrc.NetrcParseError"><span class="yiyi-st" id="yiyi-21"> <em class="property">exception </em><code class="descclassname">netrc.</code><code class="descname">NetrcParseError</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-22">Exception raised by the <a class="reference internal" href="#module-netrc" title="netrc: Loading of .netrc files."><code class="xref py py-class docutils literal"><span class="pre">netrc</span></code></a> class when syntactical errors are encountered in source text. </span><span class="yiyi-st" id="yiyi-23">这个异常的实例提供了三个有趣的属性:<code class="xref py py-attr docutils literal"><span class="pre">msg</span></code>是错误的文本解释,<code class="xref py py-attr docutils literal"><span class="pre">filename</span></code>是源文件的名称,<code class="xref py py-attr docutils literal"><span class="pre">lineno</span></code>给出发现错误的行号。</span></p></dd></dl><div class="section" id="netrc-objects"><h2><span class="yiyi-st" id="yiyi-24">14.3.1. netrc对象</span></h2><p><span class="yiyi-st" id="yiyi-25">A <a class="reference internal" href="#module-netrc" title="netrc: Loading of .netrc files."><code class="xref py py-class docutils literal"><span class="pre">netrc</span></code></a>实例具有以下方法:</span></p><dl class="method"><dt id="netrc.netrc.authenticators"><span class="yiyi-st" id="yiyi-26"> <code class="descclassname">netrc.</code><code class="descname">authenticators</code><span class="sig-paren">(</span><em>host</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-27"><em>主机</em>返回3元组<code class="docutils literal"><span class="pre">(登录,</span> <span class="pre">帐户,</span> <span class="pre">密码)</span> &gt;</code></span><span class="yiyi-st" id="yiyi-28">如果netrc文件不包含给定主机的条目则返回与“default”条目关联的元组。</span><span class="yiyi-st" id="yiyi-29">如果匹配主机或默认条目都不可用,则返回<code class="docutils literal"><span class="pre">None</span></code></span></p></dd></dl><dl class="method"><dt id="netrc.netrc.__repr__"><span class="yiyi-st" id="yiyi-30"> <code class="descclassname">netrc.</code><code class="descname">__repr__</code><span class="sig-paren">(</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-31">将类数据转储为netrc文件格式的字符串。</span><span class="yiyi-st" id="yiyi-32">(这会丢弃注释,并可能重新排序条目。)</span></p></dd></dl><p><span class="yiyi-st" id="yiyi-33"><a class="reference internal" href="#module-netrc" title="netrc: Loading of .netrc files."><code class="xref py py-class docutils literal"><span class="pre">netrc</span></code></a>的实例有公共实例变量:</span></p><dl class="attribute"><dt id="netrc.netrc.hosts"><span class="yiyi-st" id="yiyi-34"> <code class="descclassname">netrc.</code><code class="descname">hosts</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-35">将主机名映射到<code class="docutils literal"><span class="pre">(登录,</span> <span class="pre">帐户,</span> <span class="pre">密码)</span></code>元组。</span><span class="yiyi-st" id="yiyi-36">“默认”条目(如果有)通过该名称表示为伪主机。</span></p></dd></dl><dl class="attribute"><dt id="netrc.netrc.macros"><span class="yiyi-st" id="yiyi-37"> <code class="descclassname">netrc.</code><code class="descname">macros</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-38">将宏名称映射到字符串列表的字典。</span></p></dd></dl><div class="admonition note"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-39">注意</span></p><p class="last"><span class="yiyi-st" id="yiyi-40">密码限于ASCII字符集的一个子集。</span><span class="yiyi-st" id="yiyi-41">密码中允许使用所有ASCII标点符号但请注意密码中不允许使用空格和不可打印的字符。</span><span class="yiyi-st" id="yiyi-42">这是对.netrc文件进行解析的方式的限制并且可能会在将来删除。</span></p></div></div></div></div>