Python 中子程序輸出的抑制
在 Python 中,子程序可以用來執行各種系統指令。雖然此類子流程可能提供必要的功能,但其固有的冗長性可能會導致輸出混亂並妨礙可讀性。特別是,考慮使用者提供的範例:
import subprocess text = 'Hello World.' print text subprocess.call(['espeak', text])
在這種情況下,eSpeak 會產生所需的音訊輸出,但也會產生不必要的錯誤訊息。外殼的這種混亂使得存取或解釋列印文字變得困難。不幸的是,沒有記錄的選項可以停用 eSpeak 的詳細程度。
為了解決這個問題,Python 提供了一個方便的解決方案來抑制子進程輸出,允許使用者保持一個乾淨整潔的shell:
解決方案:
使用下列Python 程式碼將子進程輸出重新導向至DEVNULL >= 3.3:
import os import subprocess retcode = subprocess.call(['echo', 'foo'], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
對於低於3.3 的Python 版本,包括2.7,請使用以下程式碼:
FNULL = open(os.devnull, 'w') retcode = subprocess.call(['echo', 'foo'], stdout=FNULL, stderr=subprocess.STDOUT)
此技術有效鏡像下列shell 指令:
retcode = os.system("echo 'foo' > /dev/null")
以上是如何在 Python 中抑制子程序不需要的輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!