如果以前有人問過這個問題,我抱歉抱歉,我沒有找到答案。如何使用popen將stdout管道傳輸到另一個程序?
我有系統的順序調用腳本我寫品牌,其中之一是以下形式:
cat file | /some/program o > output.txt
從本質上說,郊遊文件到標準輸出,其通過管道輸送到一些程序,然後運行它並將輸出放到其他文件中。在這種情況下,/ some/program的使用非常不靈活,我必須在其中添加一個文件並使用參數o> some_out_file才能使用它。
將該行的shlex.split()傳遞給popen()的args只是打印文件,/ some/program的二進制文件和output.txt(如果存在的話),這顯然不是我正在尋找的內容對於。
我是相當新的使用這部分的python一般很抱歉,如果答案是顯而易見的,如果有其他方式使這個系統調用,而不是嘗試使用subprocess.popen()或類似的我對此也敞開心扉,任何幫助表示感謝!
另外,我可以只爲這個調用os.system(...),但爲了一致性的緣故與腳本的其餘部分,我寧願不使用在這種情況下的特定異常。
你可以[通過文件直接POPEN(http://stackoverflow.com/a/23050802/4279) – jfs