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

更新于: 30-Jul-2019

259 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告