pipes
— 与 shell 管道交互的接口¶
源代码: Lib/pipes.py
自版本 3.11 起已弃用,将在版本 3.13 中移除:pipes
模块已弃用(有关详细信息,请参阅 PEP 594)。请改用 subprocess
模块。
pipes
模块定义了一个类,用于抽象管道的概念,即从一个文件到另一个文件的转换器序列。
由于该模块使用 /bin/sh 命令行,因此需要一个 POSIX 或兼容 shell 来使用 os.system()
和 os.popen()
。
可用性:Unix,不包括 VxWorks。
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'
(表示命令写入命令行上的文件)或'.'
(表示命令不写入任何内容,因此必须是最后一个命令)。
- Template.open(file, mode)¶
返回一个类似文件的对象,对文件打开,但由管道读取或写入。请注意,只能给出
'r'
、'w'
中的一个。
- Template.copy(infile, outfile)¶
通过管道将infile复制到outfile。