使用子進程進行管道傳輸涉及使用 shell 參數來產生具有支援管道輸出的 shell 的進程。但是,出於安全考慮,不建議使用 shell=True。
要在不依賴 shell=True 的情況下對進程進行管道傳輸,請為每個命令建立單獨的進程並連接它們輸入和輸出流。例如:
這裡,ps 代表運行 ps -A 的進程,grep 是運行 grep 'process_name' 的進程。
在您的特定場景中,您可以簡單地調用subprocess.check_output(('ps', '-A')) ,而不是使用管道,然後在傳回的輸出上套用str.find 以檢查所需的進程。
以上是如何在不使用 shell=True 的情況下安全地在 Python 的 subprocess 中傳輸進程?的詳細內容。更多資訊請關注PHP中文網其他相關文章!