35.10. 管道 — shell 管道的接口 — Python 文档

来自菜鸟教程
Python/docs/3.6/library/pipes
跳转至:导航、​搜索

35.10. 管道 — 与 shell 管道的接口

源代码: :source:`Lib/pipes.py`



pipes 模块定义了一个类来抽象 pipeline 的概念——从一个文件到另一个文件的转换器序列。

由于模块使用 /bin/sh 命令行,因此需要 os.system()os.popen() 的 POSIX 或兼容 shell。

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.reset()
将管道模板恢复到其初始状态。
Template.clone()
返回一个新的、等效的管道模板。
Template.debug(flag)
如果 flag 为真,则打开调试。 否则,关闭调试。 当调试打开时,将打印要执行的命令,并为 shell 提供 set -x 命令更详细。
Template.append(cmd, kind)

在最后追加一个新动作。 cmd 变量必须是有效的 bourne shell 命令。 kind 变量由两个字母组成。

第一个字母可以是 '-'(表示命令读取其标准输入)、'f'(表示命令读取命令行上的给定文件)或 '.' ](这意味着命令不读取输入,因此必须是第一个。)

同样,第二个字母可以是 '-'(表示命令写入标准输出)、'f'(表示该命令在命令行写入文件)或 [ X188X](这意味着该命令不写入任何内容,因此必须在最后。)

Template.prepend(cmd, kind)
在开头添加一个新动作。 有关参数的解释,请参阅 append()
Template.open(file, mode)
返回一个类似文件的对象,打开到 file,但从管道中读取或写入。 请注意,只能给出 'r''w' 之一。
Template.copy(infile, outfile)
通过管道将 infile 复制到 outfile