2 回答

TA貢獻1815條經驗 獲得超6個贊
第一種方法是將標準輸出重定向到一個文件(POSIX 中的 /dev/null),而第二種方法是構建一個 PIPE 將輸出重定向到特定的流。
來自命令 help() 的 subprocess.PIPE 的官方定義:“該模塊允許您生成進程,連接到它們的輸入/輸出/錯誤管道,并獲取它們的返回代碼?!?/p>
我會說這種方法就像:我們只是將一些東西放在消息隊列(內存)中一段時間以備后用。但是 subprocess.call 只是返回狀態碼。似乎您無法引用返回值,subprocess.call(command, stdout=open(os.devnull, 'w'), shell=True)
因此無法通過`subprocess.call(command, stdin=the_stdout, shell=True) 引用該值。很難在兩個命令之間建立連接。
基于本文中的信息:http : //blog.acipo.com/running-shell-commands-in-python/
還有 Python 2.7 文檔:https : //docs.python.org/2/library/subprocess.html
建議我們可以將 Popen 與 communication() 一起使用
Popen 是 Python 3 提供的高級類。 關于這個有一個很好的資源:https : //stackabuse.com/pythons-os-and-subprocess-popen-commands/

TA貢獻1820條經驗 獲得超3個贊
devnull 在 linux 中指向 /dev/null。當您寫入 /dev/null 時,它將丟棄收到的所有內容。管道有兩端,當你寫到一端時,另一端會收到你寫的消息。
添加回答
舉報