楼主:
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视窗工作 所以你才觉得反人性真正搞软件开法的 最后应该都是要回到 终端机的