python错误处理程序有问题吗

2022-05-21 07:01:56 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我对python很陌生,但是我正在尝试处理错误,但是当我尝试ctrl + C or L时,我得到了input > ^Cerror,它应该只显示error而不是^C or ^L如何修复这个问题

except KeyboardInterrupt:
    print("error")

except Exception as e:
    raise e


Tags: orinputasexceptionerrorraiseprintctrlexcept处理错误陌生keyboardinterruptcerror
1条回答
网友
1楼 ·

你可以备份和覆盖它,但你不能“修复”它。这个字符来自symbont终端的键盘回音:您的stdin处理器被设置为回音(打印到屏幕)任何键入的内容。该^C对联在程序处理异常之前由该I/O处理打印出来。因此,\r选项(或一系列backspaces,\b)可能是最好的补救方法

import sys 

try:
    while True:
        string = input("Show me something")

except KeyboardInterrupt:
    print("\b\b  error")

except Exception as e:
    raise e

输出,键盘上按CTRL-C键:

Show me something  error

如果要删除整个输入行,请改用\r

except KeyboardInterrupt:
print("\rerror", " "*80)

输出:

Show me something     this line appears until I hit CTRL-C.  Replaced by
error