python如何使用ctrl+c来退出程序?
网上找到两种方法,哪个比较好,比较不浪费CPU,因为都使用上了无限的循环,#-*-coding:utf-8-*-importsignal,time,sysdefexit(...
网上找到两种方法,哪个比较好,比较不浪费CPU,因为都使用上了无限的循环,
#-*- coding: utf-8 -*-
import signal,time,sys
def exit():
def myhandle(signalNum,e):
# print 'signalNum : %s' % (signalNum)
# print 'e : %s' % (e)
sys.exit(0)
signal.signal(signal.SIGINT, myhandle)
signal.signal(signal.SIGTERM, myhandle)
while True:
time.sleep(1)
def exit_1 ():
while True:
try:
INPUT=raw_input()
except KeyboardInterrupt :
sys.exit(0)
break
except EOFError:
print 'Unknown End of file!'
continue
if __name__ == "__main__":
exit()
#or exit_1()
而且两种方法都不能很好的实现多线程,
第一种的signal要实现在主线程内,
而第二种当实现线程时就会变成EOFError例外了,而不是原来的KeyboardInterrupt例外,
要怎么实现比较好呢? 展开
#-*- coding: utf-8 -*-
import signal,time,sys
def exit():
def myhandle(signalNum,e):
# print 'signalNum : %s' % (signalNum)
# print 'e : %s' % (e)
sys.exit(0)
signal.signal(signal.SIGINT, myhandle)
signal.signal(signal.SIGTERM, myhandle)
while True:
time.sleep(1)
def exit_1 ():
while True:
try:
INPUT=raw_input()
except KeyboardInterrupt :
sys.exit(0)
break
except EOFError:
print 'Unknown End of file!'
continue
if __name__ == "__main__":
exit()
#or exit_1()
而且两种方法都不能很好的实现多线程,
第一种的signal要实现在主线程内,
而第二种当实现线程时就会变成EOFError例外了,而不是原来的KeyboardInterrupt例外,
要怎么实现比较好呢? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询