首頁 > 後端開發 > Python教學 > 如何在不使用 shell=True 的情況下安全地在 Python 的 subprocess 中傳輸進程?

如何在不使用 shell=True 的情況下安全地在 Python 的 subprocess 中傳輸進程?

Patricia Arquette
發布: 2024-12-23 00:43:44
原創
887 人瀏覽過

How Can I Safely Pipe Processes in Python's `subprocess` Without Using `shell=True`?

使用子進程進行管道傳輸

使用子進程進行管道傳輸涉及使用 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板