Edw*_*win 7 python keyboardinterrupt pycharm try-except
在pycharm中调试代码时,按Ctrl + C时,我的python try / except循环似乎不会触发键盘中断。我的代码如下所示:
numbers = []
loop = True
try:
# ===========SUBROUTINES==================
def help():
print("To view the list type 'view'"
"\n To add an item type 'add'"
"\n To remove an item type 'remove'"
"\n To exit type exit or Ctrl + c can be used at any time")
# =========SUBROUTENES END===============
while loop:
task = input("What do you want to do? Type \"help\" for help:- ")
if task == 'help':
help()
else:
print("Invalid return please try again.")
except KeyboardInterrupt:
exit()
Run Code Online (Sandbox Code Playgroud)
编辑:我的精简代码工作似乎出现了一些问题,并且没有产生相同的错误。完整的代码可以在这里查看。我还重新整理了代码(上面的代码),并产生了相同的错误。
小智 18
我知道这是一个老问题,但我遇到了同样的问题,并认为有一个更简单的解决方案:
在 PyCharm 中,转到“运行”/“编辑配置”并选中“在输出控制台中模拟终端”。PyCharm 现在接受键盘中断(确保控制台聚焦)。
测试:PyCharm 2019.1(社区版)
从屏幕截图中可以看出,您正在IDE中运行此代码。关于IDE的问题是它们与正常运行并不完全相同,尤其是在处理键盘字符时。按ctrl-c的方式,IDE认为您要复制文本。python程序永远看不到字符。也许在运行时会弹出一个单独的窗口?然后,您将在ctrl-c之前选择该窗口。
console_thrift.KeyboardInterruptExceptionPyCharm 的 Python 控制台在 Ctrl-C 而不是 上引发异常KeyboardInterrupt。该异常console_thrift.KeyboardInterruptException不是 的子类KeyboardInterrupt,因此不会被该行捕获except KeyboardInterrupt。
添加以下行将使您的脚本与 PyCharm 兼容。
try:
from console_thrift import KeyboardInterruptException as KeyboardInterrupt
except ImportError:
pass
Run Code Online (Sandbox Code Playgroud)
这不会破坏在终端或其他 IDE(如 IDLE 或 Spyder)中运行脚本的兼容性,因为该模块console_thrift只能在 PyCharm 中找到。
| 归档时间: |
|
| 查看次数: |
13541 次 |
| 最近记录: |