子程序輸出的抑制
當使用Python的子程序庫呼叫外部程式時,它們的控制台輸出可能會變得很麻煩,特別是對於像這樣的詳細應用程式電子說話。當 eSpeak 與預期音訊一起發出診斷訊息時,就會出現此問題,從而使 shell 變得混亂並阻礙後續互動。
為了解決此問題,我們可以採用一種稱為輸出重定向的技術。在Python >= 3.3 中,DEVNULL 裝置可用於將標準輸出和錯誤流重定向到空目標,從而有效地靜默它們:
import os import subprocess retcode = subprocess.call(['echo', 'foo'], stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)
對於Python
FNULL = open(os.devnull, 'w') retcode = subprocess.call(['echo', 'foo'], stdout=FNULL, stderr=subprocess.STDOUT)
3.3 ,包括2.7,可以使用以下方法:
retcode = os.system("echo 'foo' > /dev/null")
此方法相當於執行下列shell指令:
此技術可確保 eSpeak 中不必要的輸出被抑制,使外殼保持乾淨並準備好進行進一步的使用者互動。以上是如何在 Python 中抑制子程序輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!