2 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊
第一種方法是將標(biāo)準(zhǔn)輸出重定向到一個(gè)文件(POSIX 中的 /dev/null),而第二種方法是構(gòu)建一個(gè) PIPE 將輸出重定向到特定的流。
來(lái)自命令 help() 的 subprocess.PIPE 的官方定義:“該模塊允許您生成進(jìn)程,連接到它們的輸入/輸出/錯(cuò)誤管道,并獲取它們的返回代碼。”
我會(huì)說(shuō)這種方法就像:我們只是將一些東西放在消息隊(duì)列(內(nèi)存)中一段時(shí)間以備后用。但是 subprocess.call 只是返回狀態(tài)碼。似乎您無(wú)法引用返回值,subprocess.call(command, stdout=open(os.devnull, 'w'), shell=True)
因此無(wú)法通過(guò)`subprocess.call(command, stdin=the_stdout, shell=True) 引用該值。很難在兩個(gè)命令之間建立連接。
基于本文中的信息: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 提供的高級(jí)類。 關(guān)于這個(gè)有一個(gè)很好的資源:https : //stackabuse.com/pythons-os-and-subprocess-popen-commands/

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊
devnull 在 linux 中指向 /dev/null。當(dāng)您寫入 /dev/null 時(shí),它將丟棄收到的所有內(nèi)容。管道有兩端,當(dāng)你寫到一端時(shí),另一端會(huì)收到你寫的消息。
添加回答
舉報(bào)