我决定从bash终端提示符下运行python脚本,例如正在运行$ python my_script.py
。
然后,我决定按Ctrl-C
杀死该活动进程。
然后,该进程终止,并且终端出现一些输出错误,该错误可能类似于:
^C
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
KeyboardInterrupt
如何使用Ctrl-C
在静止时抑制bash /终端端的输出。
从this comment中我了解到您可以使用Ctrl-\
退出该过程,这显然与Ctrl-C
不同。似乎抑制了任何输出。
但是,如果我只运行$ python
并在交互式python shell中运行一些代码,则使用Ctrl-\
会完全退出Python shell进程,而Ctrl-C
只会杀死我的代码刚刚执行(就像for循环一样),但是保留了Python shell进程。
答案 0 :(得分:1)
由于您正在使用bash,因此可以执行python script.py 2>/dev/null
。
2 表示它将 stderr 发送到特殊文件 / dev / null ,该文件始终为空,此脚本现在将发送到该文件其输出到。
如果您没有 2 ,它将抑制标准输出(即 stdout ),但不会出错。
如果您想同时抑制两者,则可以执行> /dev/null 2>&1
,因为1是stdout,而stdout现在被路由到devnull。
本质上,您是将错误回溯发送到空白文件,而不是发送到标准stderr位置(您的屏幕)。
答案 1 :(得分:0)
您可以使用try-except块:
在下面的代码中,我仅以打印一些数字为例,将其替换为您的代码:
import sys
try:
# your code
for i in range(1000000):
print(i)
except KeyboardInterrupt:
sys.exit(0)