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 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告