Python Shell管道接口
使用python来使用UNIX命令管道机制。在命令管道中,一个序列将一个文件转换为另一个文件。
此模块使用/bin/sh命令行。因此,我们需要os.system()和os.popen()方法。
要使用此模块,我们应该使用以下方法导入它:
import pipes
管道包含Template类:
class pipes.Template
此类基本上是管道的抽象。它有不同的方法。如下所示。
方法 Template.reset()
此方法用于将管道模板恢复到其初始位置。
方法 Template.clone()
此方法用于创建另一个新的相同模板对象。
方法 Template.debug(flag)
此方法用于调试进程。当标志为真时,调试模式开启。开启时,命令将在执行期间打印。
方法 Template.append(command, kind)
此方法用于在末尾插入一个新的任务。命令必须是bourne shell命令。kind变量包含两个字符。
对于第一个字母,它表示:
序号 | 字符 & 描述 |
---|---|
1 | ‘–‘ 命令读取标准输入 |
2 | ‘f’ 命令将在命令行上读取给定的文件 |
3 | ‘.’ 命令不读取任何输入。因此它将位于第一个位置。 |
对于第二个字母,它表示。
序号 | 字符 & 描述 |
---|---|
1 | ‘–‘ 命令写入标准输出 |
2 | ‘f’ 命令将在命令行上写入文件 |
3 | ‘.’ 命令不写入任何输出。因此它将位于最后一个位置。 |
方法 Template.prepend(command, kind)
此方法用于在开头插入一个新的任务。命令必须是bourne shell命令。它类似于append()方法。
方法 Template.open(file, mode)
此方法用于打开文件以进行读取或写入。但读取或写入操作由管道完成。
方法 Template.copy(infile, outfile)
此方法用于通过管道将infile复制到outfile。
示例代码
import pipes my_template = pipes.Template() my_template.append('tr a-z A-Z', '--') my_template.prepend('echo Python Programming', '--') #Prepend the item into queue my_template.append('rev', '--') my_template.debug(True) my_file = my_template.open('test_file', 'w') my_file.close() content = open('test_file').read() print(content)
输出
$ python3 example.py echo Python Programming | tr a-z A-Z | rev >test_file + rev + tr a-z A-Z + echo Python Programming GNIMMARGORP NOHTYP
广告