首頁 >後端開發 >Python教學 >如何使用 Python 的「subprocess」模組正確傳輸指令?

如何使用 Python 的「subprocess」模組正確傳輸指令?

Patricia Arquette
Patricia Arquette原創
2024-12-18 06:55:15343瀏覽

How to Properly Pipe Commands Using Python's `subprocess` Module?

如何在 subprocess 指令中使用管道

使用 subprocess 模組時,可能會出現需要使用管道來連接多個命令。本問題探討了使用以下指令使用subprocess.check_output() 的挑戰:

ps -A | grep 'process_name'

答案

要使用帶有子程序的管道,shell=True可以採用論證。但是,使用 shell=True 會帶來安全問題,應謹慎對待。更好的方法是分別建立ps 和grep 進程,並將輸出從一個進程傳輸到另一個進程:

ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE)
output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout)
ps.wait()

在提到的特定場景中,更簡單的解決方案是呼叫subprocess. check_output(('ps ', '-A')) 並在輸出上使用str.find。

以上是如何使用 Python 的「subprocess」模組正確傳輸指令?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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