mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 23:14:06 +08:00
9 lines
8.1 KiB
HTML
9 lines
8.1 KiB
HTML
<div class="body" role="main"><div class="section" id="module-pipes"><h1><span class="yiyi-st" id="yiyi-10">35.10. <a class="reference internal" href="#module-pipes" title="pipes: A Python interface to Unix shell pipelines. (Unix)"><code class="xref py py-mod docutils literal"><span class="pre">pipes</span></code></a> - shell管道接口</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/pipes.py">Lib / pipes.py</a></span></p><p><span class="yiyi-st" id="yiyi-12"><a class="reference internal" href="#module-pipes" title="pipes: A Python interface to Unix shell pipelines. (Unix)"><code class="xref py py-mod docutils literal"><span class="pre">pipes</span></code></a>模块定义了抽象<em>管道概念的类 t> - 从一个文件到另一个文件的转换器序列。</em></span></p><p><span class="yiyi-st" id="yiyi-13">Because the module uses <strong class="program">/bin/sh</strong> command lines, a POSIX or compatible shell for <a class="reference internal" href="os.html#os.system" title="os.system"><code class="xref py py-func docutils literal"><span class="pre">os.system()</span></code></a> and <a class="reference internal" href="os.html#os.popen" title="os.popen"><code class="xref py py-func docutils literal"><span class="pre">os.popen()</span></code></a> is required.</span></p><p><span class="yiyi-st" id="yiyi-14"><a class="reference internal" href="#module-pipes" title="pipes: A Python interface to Unix shell pipelines. (Unix)"><code class="xref py py-mod docutils literal"><span class="pre">pipes</span></code></a>模块定义了以下类:</span></p><dl class="class"><dt id="pipes.Template"><span class="yiyi-st" id="yiyi-15"> <em class="property">class </em><code class="descclassname">pipes.</code><code class="descname">Template</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-16">管道的抽象。</span></p></dd></dl><p><span class="yiyi-st" id="yiyi-17">例:</span></p><pre><code class="language-python"><span></span><span class="gp">>>> </span><span class="kn">import</span> <span class="nn">pipes</span>
|
||
<span class="gp">>>> </span><span class="n">t</span> <span class="o">=</span> <span class="n">pipes</span><span class="o">.</span><span class="n">Template</span><span class="p">()</span>
|
||
<span class="gp">>>> </span><span class="n">t</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="s1">'tr a-z A-Z'</span><span class="p">,</span> <span class="s1">'--'</span><span class="p">)</span>
|
||
<span class="gp">>>> </span><span class="n">f</span> <span class="o">=</span> <span class="n">t</span><span class="o">.</span><span class="n">open</span><span class="p">(</span><span class="s1">'pipefile'</span><span class="p">,</span> <span class="s1">'w'</span><span class="p">)</span>
|
||
<span class="gp">>>> </span><span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="s1">'hello world'</span><span class="p">)</span>
|
||
<span class="gp">>>> </span><span class="n">f</span><span class="o">.</span><span class="n">close</span><span class="p">()</span>
|
||
<span class="gp">>>> </span><span class="nb">open</span><span class="p">(</span><span class="s1">'pipefile'</span><span class="p">)</span><span class="o">.</span><span class="n">read</span><span class="p">()</span>
|
||
<span class="go">'HELLO WORLD'</span>
|
||
</code></pre><div class="section" id="template-objects"><h2><span class="yiyi-st" id="yiyi-18">35.10.1. </span><span class="yiyi-st" id="yiyi-19">Template Objects</span></h2><p><span class="yiyi-st" id="yiyi-20">模板对象方法如下:</span></p><dl class="method"><dt id="pipes.Template.reset"><span class="yiyi-st" id="yiyi-21"> <code class="descclassname">Template.</code><code class="descname">reset</code><span class="sig-paren">(</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-22">将流水线模板恢复为其初始状态。</span></p></dd></dl><dl class="method"><dt id="pipes.Template.clone"><span class="yiyi-st" id="yiyi-23"> <code class="descclassname">Template.</code><code class="descname">clone</code><span class="sig-paren">(</span><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-24">返回一个新的,等效的流水线模板。</span></p></dd></dl><dl class="method"><dt id="pipes.Template.debug"><span class="yiyi-st" id="yiyi-25"> <code class="descclassname">Template.</code><code class="descname">debug</code><span class="sig-paren">(</span><em>flag</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-26">如果<em>标志</em>为真,请打开调试。</span><span class="yiyi-st" id="yiyi-27">否则,关闭调试。</span><span class="yiyi-st" id="yiyi-28">当调试打开时,打印要执行的命令,并且给予shell <code class="docutils literal"><span class="pre">set</span> <span class="pre">-x</span></code>命令更详细。</span></p></dd></dl><dl class="method"><dt id="pipes.Template.append"><span class="yiyi-st" id="yiyi-29"> <code class="descclassname">Template.</code><code class="descname">append</code><span class="sig-paren">(</span><em>cmd</em>, <em>kind</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-30">在结尾添加新操作。</span><span class="yiyi-st" id="yiyi-31"><em>cmd</em>变量必须是有效的bourne shell命令。</span><span class="yiyi-st" id="yiyi-32"><em>种类</em>变量由两个字母组成。</span></p><p><span class="yiyi-st" id="yiyi-33">第一个字母可以是<code class="docutils literal"><span class="pre">'-'</span></code>(这意味着命令读取其标准输入),<code class="docutils literal"><span class="pre">'f'</span></code>(这意味着命令读取命令上的给定文件线)或<code class="docutils literal"><span class="pre">'.'</span></code></span><span class="yiyi-st" id="yiyi-34">(这意味着命令不读取输入,因此必须是第一个。)</span></p><p><span class="yiyi-st" id="yiyi-35">类似地,第二个字母可以是<code class="docutils literal"><span class="pre">'-'</span></code>(意味着命令写入标准输出),<code class="docutils literal"><span class="pre">'f'</span></code>(这意味着命令将文件写入命令行)或<code class="docutils literal"><span class="pre">'.'</span></code></span><span class="yiyi-st" id="yiyi-36">(这意味着命令不会写任何东西,因此必须是最后一个。)</span></p></dd></dl><dl class="method"><dt id="pipes.Template.prepend"><span class="yiyi-st" id="yiyi-37"> <code class="descclassname">Template.</code><code class="descname">prepend</code><span class="sig-paren">(</span><em>cmd</em>, <em>kind</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-38">在开始时添加新操作。</span><span class="yiyi-st" id="yiyi-39">有关参数的说明,请参见<a class="reference internal" href="#pipes.Template.append" title="pipes.Template.append"><code class="xref py py-meth docutils literal"><span class="pre">append()</span></code></a>。</span></p></dd></dl><dl class="method"><dt id="pipes.Template.open"><span class="yiyi-st" id="yiyi-40"> <code class="descclassname">Template.</code><code class="descname">open</code><span class="sig-paren">(</span><em>file</em>, <em>mode</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-41">返回类似文件的对象,打开<em>文件</em>,但从管道读取或写入。</span><span class="yiyi-st" id="yiyi-42">注意,可以仅给出<code class="docutils literal"><span class="pre">'r'</span></code>,<code class="docutils literal"><span class="pre">'w'</span></code>中的一个。</span></p></dd></dl><dl class="method"><dt id="pipes.Template.copy"><span class="yiyi-st" id="yiyi-43"> <code class="descclassname">Template.</code><code class="descname">copy</code><span class="sig-paren">(</span><em>infile</em>, <em>outfile</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-44">通过管道将<em>infile</em>复制到<em>outfile</em>。</span></p></dd></dl></div></div></div> |