Shell管道的Python接口

要使用python使用UNIX命令管道机制。在命令流水线中,序列从一个文件转换为另一个文件。

该模块使用/ bin / sh命令行。因此,我们需要os.system()和os.popen()方法。

要使用此模块,我们应该使用-导入它

import pipes

管道持有Template类-

类管道。模板

此类基本上是管道的抽象。它有不同的方法。这些如下。

方法Template.reset()

此方法用于将管道模板还原到其初始位置。

方法Template.clone()

此方法用于创建另一个新的相同模板对象。

方法Template.debug(flag)

此方法用于调试过程。当该标志为true时,打开调试模式。启用时,将在执行期间打印命令。

方法Template.append(command,kind)

此方法用于最后插入新任务。该命令必须是bourne shell命令。kind变量由两个字符组成。

对于第一个字母,它意味着-

序号字符和描述
1

'–'

命令读取标准输入

2

'F'

命令将在命令行上读取给定的文件

3

'。'

命令不读取任何输入。因此它将处于第一位置。

对于第二个字母,它表示。

序号字符和描述
1

'–'

命令写入标准输出

2

'F'

命令将在命令行上写入文件

3

'。'

命令不写任何输出。因此它将位于最后一个位置。

方法Template.prepend(command,kind)

此方法用于在开始时插入新任务。该命令必须是bourne shell命令。它类似于该append()方法。

方法Template.open(文件,模式)

此方法用于打开要读取或写入的文件。但是读或写操作是由管道完成的。

方法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