管道 — shell 管道的接口 — Python 文档
来自菜鸟教程
Python/docs/3.8/library/pipes
pipes — shell 管道的接口
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'
模板对象
模板对象以下方法:
- 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。