模塊的Python是否適用於腳本命令行任務?Python是否有腳本命令行任務模塊?
我對能夠發出命令,解析輸出,特別是與成功,失敗或進展有關的事情感興趣,並根據結果發送電子郵件。
是否有一些模塊特別適用於此?
模塊的Python是否適用於腳本命令行任務?Python是否有腳本命令行任務模塊?
我對能夠發出命令,解析輸出,特別是與成功,失敗或進展有關的事情感興趣,並根據結果發送電子郵件。
是否有一些模塊特別適用於此?
嘗試subprocess
模塊。
片段使用suprocess
和shlex
模塊:
def runcommand(command):
args = shlex.split(command)
p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
(stdoutdata, stderrdata) = p.communicate()
return (stdoutdata, stderrdata, p.returncode)
(outdata, errdata, returncode) = runcommand('/bin/ls -hl /tmp')
outlines = outdata.splitlines()
errlines = errdata.splitlines()
發送郵件有圖書館文檔中良好examples。
請注意,communicate()
將等待進程終止。對於進度只需訪問Popen pid and streams直接結合poll()
或wait()
。
這看起來像它可能做你想要什麼:https://github.com/amoffat/pbs
GitHub的頁面上的文檔中有一些很好的例子。此外,我還沒有使用過這個,但已經從網上其他人讀到他們真的很喜歡這一點,並認爲這優於子進程(無論什麼原因)
乾杯。
pbs看起來很整齊。非常Pythonic! – dkamins 2012-02-07 03:40:56