# 35.10. `pipes` - shell管道接口

源代码： Lib / pipes.py

`pipes`模块定义了抽象管道概念的类 t> - 从一个文件到另一个文件的转换器序列。

Because the module uses /bin/sh command lines, a POSIX or compatible shell for `os.system()` and `os.popen()` is required.

`pipes`模块定义了以下类：

class `pipes.``Template`

  管道的抽象。

例：

    >>> import pipes
    >>> t = pipes.Template()
    >>> t.append('tr a-z A-Z', '--')
    >>> f = t.open('pipefile', 'w')
    >>> f.write('hello world')
    >>> f.close()
    >>> open('pipefile').read()
    'HELLO WORLD'

## 35.10.1. Template Objects

模板对象方法如下：

`Template.``reset`()

  将流水线模板恢复为其初始状态。

`Template.``clone`()

  返回一个新的，等效的流水线模板。

`Template.``debug`(flag)

  如果标志为真，请打开调试。否则，关闭调试。当调试打开时，打印要执行的命令，并且给予shell `set -x`命令更详细。

`Template.``append`(cmd, kind)

  在结尾添加新操作。cmd变量​​必须是有效的bourne shell命令。种类变量​​由两个字母组成。

  第一个字母可以是`'-'`（这意味着命令读取其标准输入），`'f'`（这意味着命令读取命令上的给定文件线）或`'.'`（这意味着命令不读取输入，因此必须是第一个。）

  类似地，第二个字母可以是`'-'`（意味着命令写入标准输出），`'f'`（这意味着命令将文件写入命令行）或`'.'`（这意味着命令不会写任何东西，因此必须是最后一个。）

`Template.``prepend`(cmd, kind)

  在开始时添加新操作。有关参数的说明，请参见`append()`。

`Template.``open`(file, mode)

  返回类似文件的对象，打开文件，但从管道读取或写入。注意，可以仅给出`'r'`，`'w'`中的一个。

`Template.``copy`(infile, outfile)

  通过管道将infile复制到outfile。