看板 Python 關於我們 聯絡資訊
可能是個蠢問題,不好意思 py程式執行完成後會自動關閉console視窗 雖然程式最後加個input()可以暫停關閉 但若是在執行到input()前就遇到錯誤,console視窗也是會閃退 這有方法克服嗎? 還是說只能先開console視窗再執行py程式呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 205.185.214.110 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1548498109.A.FCD.html
CodingMan: try?01/26 18:23
只剩這個選項了嗎QQ
rexyeah: 在terminal 下執行應該不會閃退。01/26 18:34
對,這也是我現在的做法,所以想尋求更好的解法 ※ 編輯: shala (173.213.89.40), 01/26/2019 19:15:45
XperiaZ6C: 你寫一個兩行bat專門run這個py檔就好,記得第二行是pa01/26 19:17
XperiaZ6C: use01/26 19:17
XperiaZ6C: 跟直接點兩下執行py檔其實意思差不到01/26 19:17
還是只能靠外部輔助了嗎QQ
yangs0618: 我都用cmd 執行01/26 19:32
※ 編輯: shala (209.107.210.222), 01/26/2019 22:43:18
asd2213857: 我是在每個可能出錯部分前都加一個input() 這樣我比01/27 01:09
asd2213857: 較方便檢查01/27 01:09
asd2213857: 不然之前測試sys.argv差點發瘋01/27 01:09
出錯前設input無法阻止出錯後的閃退QQ
HenryLiKing: 本來就該用 try 啊01/27 10:43
HenryLiKing: 不然你怎麼知道什麼時候發生錯誤....01/27 10:44
原本是希望出錯時能停在報錯畫面,看來只能等Python未來有沒有要改了QQ
HenryLiKing: 不然用01/27 10:44
HenryLiKing: import os; os.system("pause")01/27 10:45
這跟input的效果一樣吧 ※ 編輯: shala (162.251.232.125), 01/27/2019 13:36:51
lemon651: ...程式終止本來console就會結束 不懂你覺得python未來 01/27 15:02
lemon651: 試想你寫一個程式沒處理exception,exception一出來就01/27 15:06
lemon651: 讓程式停在那裡,合理嗎? 01/27 15:06
lemon651: *不懂你覺得python未來要改什麼01/27 15:09
我覺得程式遇錯終止跟視窗是否自動關閉可以當作兩個獨立事件
ripple0129: 你可以try catch error寫進檔案,catch error後sys pa01/27 16:53
ripple0129: use 01/27 16:53
寫進檔案也是一個方法,不過不是我的目的QQ
Sunal: 原PO只是想要一個方便的debugger吧01/27 17:14
也可以這麼說啦。就只是想要視窗不要自動關閉而已
yangs0618: 我回答的可以吧 被54了 01/27 17:53
不好意思沒回覆,因為我也是在console視窗下執行。
eight0: process 結束時關閉視窗是 OS 的行為和 python 無關01/27 21:04
eight0: 想要額外處理輸入輸出可以自己寫一個 launcher 01/27 21:06
原來如此,我誤會了
s860134: 你的要求其實很簡單 用一個 try:...except: input() 01/27 23:20
s860134: 把你的程式邏輯包起來,不就停下來了嗎?01/27 23:20
s860134: except BaseException as e: logging.error(e, exc_info= 01/27 23:21
s860134: True) 你要的只是想印在螢幕上吧 01/27 23:21
謝謝。try我會,想看看還有沒有其他解法
stucode: 推額外寫一個 launcher。01/27 23:55
stucode: 雖然在 atexit 跟 sys.excepthook 暫停都可以達成目的,01/27 23:55
stucode: 但是它們都有一些無法對應的情況。(詳見文件跟 01/27 23:56
stucode: issue1230540) 01/27 23:57
謝謝,這個解法有點意思,我試看看 ※ 編輯: shala (216.151.183.162), 01/28/2019 17:21:55
x246libra: 這些開源程式都是UNIX起家的 人家都是在terminal作業 01/28 18:56
x246libra: 自然不會遇到妳說的問題 你的覺得奇怪 是因為微軟的 01/28 18:57
x246libra: 做法 都是在gui視窗工作 所以你才覺得反人性 01/28 18:58
x246libra: 真正搞軟體開法的 最後應該都是要回到 終端機的 01/28 18:58