[英]How do you execute and external program and it's assocaited command line options using subprocess.call in Python
[英]Is there any way to get the full command line that's executed when using subprocess.call?
我正在使用subprocess.call,您在其中給它一個數組的argumets,它將構建命令行並執行它。
首先是否涉及任何轉義? (例如,如果我將包含空格的文件的路徑作為參數傳遞,則/path/my file.txt
會被轉義嗎? "/path/my file.txt"
)
並且有什么方法可以使該命令行在執行之前生成(轉義后和所有后)?
因為我需要檢查生成的命令行是否不超過一定數量的字符(以確保執行時不會出現錯誤)。
如果您不使用shell=True
,那么實際上並沒有涉及“命令行”。 subprocess.Popen
只是將您的參數列表傳遞給基礎的execve()
系統調用。
同樣,也沒有轉義,因為不涉及任何外殼程序,因此沒有任何解釋特殊字符的內容,也沒有任何嘗試標記化您的字符串的東西。
不必擔心字符限制,因為參數永遠不會串聯到單個命令行中。 參數的最大數量和/或單個參數的長度可能受到限制。
如果您使用的 shell=True
,你必須構建在命令行自己把它傳遞給前subprocess
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.