首頁 >後端開發 >Python教學 >如何在 Python 中抑制子程序輸出?

如何在 Python 中抑制子程序輸出?

Susan Sarandon
Susan Sarandon原創
2024-12-16 19:22:11582瀏覽

How Can I Suppress Subprocess Output in Python?

子程序輸出的抑制

當使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn