import urllib2
import webbrowser
import time
import sys
URL = "http://nonexisting"
while True:
try:
website = urllib2.urlopen(URL, timeout=1)
if website:
webbrowser.open_new(URL)
break
except KeyboardInterrupt:
break
except:
sys.stdout.write('.')
time.sleep(1)
我希望这段代码每秒写出一个点,但什么都没有发生,当我按下时,CTRL-C我得到了这个输出:
^C..........Traceback (most recent call last):
File "stackoverflow_question.py", line 21, in <module>
time.sleep(1)
KeyboardInterrupt
所以每个点都出现在中断之后。这是为什么 ?我怎样才能达到预期的结果?我尝试了与print
语句相同的结果。在 OS X 和 linux 上也是如此。