我試過os.popen
之類的方法。但它似乎不適合我。我想知道命令'echo xxxx'
和'java -version'
之間是否有任何不同,以及如何使用python代碼獲得'java -version'
輸出。如何通過python獲得'java -version'輸出
回答
import subprocess
sp = subprocess.Popen(["java", "-version"], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print sp.communicate()
print sp.wait()
是去真正的出路。
一個更簡單的方法可能是
print subprocess.check_output(["java", "-version"], stderr=subprocess.STDOUT)
是的,區別在於java -version轉到stderr流。嘗試popen3 http://docs.python.org/library/popen2.html
「自2.6版棄用:此模塊已過時,請使用子流程模塊。」 – Matthias
那麼,它仍然是常用的。大量的ppl使用os.popen,我懷疑它是否會在2.x分支中消失(現在已經差不多了)。 – CrazyCasta
如果有東西被棄用,我不會推薦它。 – Matthias
區別在於java -version
打印到stderr
而不是stdout
。您可以使用subprocess.Popen
(更好)檢查命令的stderr
或重定向到stdout
手動stderr
:
java -version 2>&1
謝謝,它對我有用~~~ –
- 1. 我如何獲得通過的Python
- 2. 如何通過使用下面的python代碼獲得所需的輸出?
- 3. 如何從Oracle的SELECT存儲過程獲得輸出到Java的輸出?
- 4. 如何通過browserify獲得縮小輸出?
- 5. 如何通過lambda函數獲得正確的輸出?
- 6. 如何通過ID獲得選項元素並輸出文字
- 7. 如何通過「get」獲得角度輸出信息?
- 8. 我如何獲得python logging.debug()消息輸出到標準輸出?
- 9. Java獲得輸出CallableStatement JDBC
- 10. 如何獲得通過
- 11. 如何獲得通過AJAX
- 12. 如何在python中通過pymongo獲取db.serverStatus()。連接的輸出?
- 13. 如何獲得與輸出
- 14. 如何獲得輸出proc_open()
- 15. 如何獲得輸出?
- 16. 通過HTTP輸出Java DOM
- 17. 通過java輸出CSV
- 18. 如何獲得通過setsid
- 19. 如何獲得通過JDBC
- 20. 如何獲得通過API
- 21. 如何獲得通過VBA
- 22. 如何獲得通過HTTP
- 23. 如何將「java -version」的輸出寫入文本文件?
- 24. 如何通過在Java中傳遞列名來獲得列號
- 25. 通過python使用硒如何獲得按鈕的名稱?
- 26. Java輸入輸出測試通過GUI
- 27. 如何輸出通過python的gui輸入的信息?
- 28. 如何獲得渲染HTML Java中(通過使用Javascript處理)
- 29. 通過bash獲取Java程序的輸入和輸出
- 30. 如何通過https獲得wcf通信
subprocess.check_output http://docs.python.org/library/subprocess.html#module-subprocess – avasal
閱讀'subprocess'模塊的手冊。 –
爲什麼沒有人閱讀[os.popen的文檔](http://docs.python.org/library/os.html#os.popen)?它說:「自2.6版棄用:此功能已過時,請使用子流程模塊。」 – Matthias