使用subprocess.Popen() 呼叫另一個Python 腳本時,將變數作為參數傳遞可能會遇到意外問題。讓我們研究一下為什麼會發生這種情況以及如何解決它。
提供的程式碼示範了嘗試使用儲存在變數中的參數執行腳本 mytool.py。然而,shell=True 參數可能會阻礙執行。
解:
要成功傳遞變量,省略 shell=True 參數。在 Unix 環境下,啟用 shell=True 會修改 Popen() 解釋參數的方式,可能會導致不良行為。
以下是解決此問題的修改後的程式碼片段:
安全注意事項:
對涉及外部輸入的命令使用shell=True 有安全隱患。正如 Python 文件中所述,由於潛在的漏洞,不鼓勵這種做法。
以上是為什麼 `subprocess.Popen()` 中變數傳遞失敗以及如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!