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
廣告