當我使用Python調用外部程序.exe
時,如何從.exe
應用程序獲得printf
輸出並將其打印到我的Python IDE?如何在python腳本中獲取exe的輸出?
4
A
回答
17
要從Python調用外部程序,請使用subprocess模塊。
子流程模塊允許您產生新的進程,連接到它們的輸入/輸出/錯誤管道,並獲得它們的返回代碼。
從DOC的一個例子(output
是一個文件對象,它提供從子過程的輸出。):
output = subprocess.Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]
一個具體的例子,使用cmd
,Windows命令行解釋器以2個參數:
>>> p1 = subprocess.Popen(["cmd", "/C", "date"],stdout=subprocess.PIPE)
>>> p1.communicate()[0]
'The current date is: Tue 04/14/2009 \r\nEnter the new date: (mm-dd-yy) '
>>>
6
我敢肯定,你在這裏談論的Windows(根據你的問題的措辭),但在Unix/Linux操作系統(包括Mac)的環境下,命令MODUL e是也是可用的:
import commands
(stat, output) = commands.getstatusoutput("somecommand")
if(stat == 0):
print "Command succeeded, here is the output: %s" % output
else:
print "Command failed, here is the output: %s" % output
的命令模塊提供了一個非常簡單的接口來運行命令和獲取狀態(返回代碼)和輸出(從stdout和stderr閱讀)。或者,您可以分別通過調用commands.getstatus()或commands.getoutput()來獲得狀態或僅輸出。
相關問題
- 1. 獲取python腳本的輸出從Python腳本中
- 2. 從python腳本獲取輸出到django
- 3. 捕獲Python腳本輸出
- 4. 如何從R腳本獲取輸出
- 5. 獲取輸出的elevaed exe
- 6. 如何在bash腳本中獲取time命令的輸出?
- 7. 如何在shell腳本中獲取sqlite命令的輸出
- 8. 從在Python Python腳本獲取輸出測試
- 9. 如何從PHP中的本地腳本獲取輸出?
- 10. 在PHP中捕獲Python腳本輸出並避免雙輸出
- 11. 從C++ EXE獲取輸出並在Python中實時處理
- 12. Linux:讀取Bash腳本中readlink/proc/pid/exe的輸出
- 13. 如何在TWebbrowser中獲取JS腳本控制檯輸出?
- 14. 從QT中的Python腳本獲取輸出
- 15. 如何從Azure ML中的python腳本獲取web服務的輸出ML
- 16. 如何從exe的完整路徑獲取Innosetup腳本中exe的名稱?
- 17. 從bash腳本獲取perl腳本的輸出並退出
- 18. 從Python腳本獲取退出代碼與重定向輸出
- 19. 獲取perl腳本的錯誤輸出。
- 20. 如何從gdb中獲取輸入(使用python腳本)
- 21. 無法讀取python腳本輸出
- 22. 從Python執行腳本讀取輸出
- 23. Selenium with Python,如何在運行腳本之後獲取頁面輸出?
- 24. 從正在運行的python腳本讀取輸出的Linux python
- 25. 將python輸出腳本格式更改爲exe
- 26. 在excel中打印python腳本輸出
- 27. 在Python腳本中抑制pjsua輸出
- 28. 無法獲取從python運行的shell腳本輸出
- 29. Python中獲取cron腳本
- 30. 如何從終端獲取python腳本的輸入文件?
我可以使用os.popen()嗎? – Kim 2009-04-14 15:25:55
不,不要使用os.popen(),它已被子進程廢棄。 – unwind 2009-04-14 15:27:37