Bash

如何在 python 腳本中執行 bash 命令

  • June 19, 2020

如何sudo apt update從 python 腳本啟動具有多個參數(例如“”)的 bash 命令?

@milne 的回答有效,但subprocess.call()給您的回饋很少。

我更喜歡使用subprocess.check_output()這樣您就可以分析列印到標準輸出的內容:

import subprocess
res = subprocess.check_output(["sudo", "apt", "update"])
for line in res.splitlines():
    # process the output line by line

check_output在呼叫命令的零退出時引發錯誤

bash請注意,如果您沒有為函式指定關鍵字參數,這不會呼叫或另一個 shell shell(對於 也是如此subprocess.call(),如果沒有必要,您不應該這樣做,因為它會帶來安全隱患),它會直接呼叫命令。

如果您發現自己從 Python 執行了很多(不同的)命令呼叫,您可能需要查看plumbum。有了它,您可以使(IMO)更具可讀性:

from plumbum.cmd import sudo, apt, echo, cut

res = sudo[apt["update"]]()
chain = echo["hello"] | cut["-c", "2-"]
chain()

引用自:https://unix.stackexchange.com/questions/190495