[英]python subprocess console output - eclipse calls batch calls python calls exe
我有一種情況,我希望從eclipse完成工作,所以我使用eclipse的.launch配置 。 我試圖使其直接運行python,但出現錯誤: error 193 (%1 is not a valid Win32 app)
。 其中%1可能是我的python腳本。
我決定創建一個簡單的批處理腳本來調用這種大型野生python動物。
我做了很多組合,發現這是最好的(批處理輸出一些字符串,運行python,等待,再次輸出一些字符串):
start /b /wait "Python_script.py" "%1" "%2" "%3" "%4" "%5"
它一直工作到python本身開始運行exe文件為止。
我再次嘗試了很多組合:
os.system([exe, arg1, arg2, ...])
和subprocess.call(..)
和subprocess.check_output(..)
->我或者在Eclipse控制台中沒有看到輸出,或者輸出被延遲,或者在控制台中只有python /或只有exe的輸出。
最后我使用了subprocess.Popen(...)
,這幾乎沒問題-唯一的缺點是python腳本的輸出不等待exe進程完成,而當我使用subprocess.Popen(...).wait()
exe將輸出傳遞到控制台,但是python腳本的整個輸出會延遲到'exe'終止 。 我只想延遲exe調用后編寫的pythons腳本輸出部分。
謝謝!
在我看來,您要嘗試使用三個不同的流程來協同工作,您已經嘗試了很多方法來使其正常工作,並且代碼非常復雜,以至於您無法輕松地將其發布在此處。 這就很難得到一個好的答案(Stack Overflow在解決有重點的問題時效果更好),但這是我要采用的一般方法:
Python_script.py
則腳本會運行嗎?
start
; 只需更換Python_script.py
在你的啟動配置c:\\Python27\\python.exe Python_script.py
(或類似)。 subprocess.call
, subprocess.check_output
和Popen
都有不同的用途,因此除了參考文檔外,很難給出一般性建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.