当我收到 StopIteration 异常时,如何关闭此服务器?sys.exit() 不起作用。
#!/usr/bin/env python
from BaseHTTPServer import BaseHTTPRequestHandler,HTTPServer
PORT_NUMBER = 2000
from itertools import islice
filename = 'data/all.txt'
file = open(filename, 'r')
lines_gen = islice(file, None)
class MyHandler(BaseHTTPRequestHandler):
def do_GET(self):
global lines_gen
self.send_response(200)
self.send_header('Content-type','text/plain')
self.end_headers()
try:
for i in range(10):
next_line = lines_gen.next()
self.wfile.write(next_line)
except StopIteration:
# return response and shutdown the server
# ?????
return
try:
server = HTTPServer(('', PORT_NUMBER), MyHandler)
print('Started httpserver on port ' , PORT_NUMBER)
server.serve_forever()
except KeyboardInterrupt:
print('^C received, shutting down the web server')
server.socket.close()