作者:
shala (沙羅)
2019-01-26 18:21:47可能是個蠢問題,不好意思
py程式執行完成後會自動關閉console視窗
雖然程式最後加個input()可以暫停關閉
但若是在執行到input()前就遇到錯誤,console視窗也是會閃退
這有方法克服嗎?
還是說只能先開console視窗再執行py程式呢?
作者:
rexyeah (ccccccc)
2019-01-26 18:34:00在terminal 下執行應該不會閃退。
你寫一個兩行bat專門run這個py檔就好,記得第二行是pause跟直接點兩下執行py檔其實意思差不到
我是在每個可能出錯部分前都加一個input() 這樣我比較方便檢查不然之前測試sys.argv差點發瘋
本來就該用 try 啊不然你怎麼知道什麼時候發生錯誤....不然用import os; os.system("pause")
...程式終止本來console就會結束 不懂你覺得python未來試想你寫一個程式沒處理exception,exception一出來就讓程式停在那裡,合理嗎?*不懂你覺得python未來要改什麼
你可以try catch error寫進檔案,catch error後sys pause
作者:
Sunal (SSSSSSSSSSSSSSSSSSSSSSS)
2019-01-27 17:14:00原PO只是想要一個方便的debugger吧
作者:
eight0 (欸XD)
2019-01-27 21:04:00process 結束時關閉視窗是 OS 的行為和 python 無關想要額外處理輸入輸出可以自己寫一個 launcher
作者:
s860134 (s860134)
2019-01-27 23:20:00你的要求其實很簡單 用一個 try:...except: input()把你的程式邏輯包起來,不就停下來了嗎?except BaseException as e: logging.error(e, exc_info=True) 你要的只是想印在螢幕上吧
作者: stucode 2019-01-27 23:55:00
推額外寫一個 launcher。雖然在 atexit 跟 sys.excepthook 暫停都可以達成目的,但是它們都有一些無法對應的情況。(詳見文件跟issue1230540)
這些開源程式都是UNIX起家的 人家都是在terminal作業自然不會遇到妳說的問題 你的覺得奇怪 是因為微軟的做法 都是在gui視窗工作 所以你才覺得反人性真正搞軟體開法的 最後應該都是要回到 終端機的