I have the following script which just boots up a web server serving a dynamically created website. In order to get dynamic data the script opens a file to read the data.
My concern is how can I catch CTRL-C command for killing the python script so I can close the file before script thread is killed.
I tried the following couple things but neither work:
from flask import Flask, render_template
import time
# Initialize the Flask application
app = Flask(__name__)
fileNames = {}
fileDesc = {}
for idx in range(1,4):
    fileNames["name{}".format(idx)] = "./name" + str(idx) + ".txt"
    fileDesc["name{}".format(idx)] = open(fileNames["name{}".format(idx)],'r')
try:
    @app.route('/')
    def index():
        # code for reading data from files
        return render_template('index.html', var1 = var1)
    @app.errorhandler(Exception)
    def all_exception_handler(error):
        print("Closing")
        for key, value in fileDesc:
            val.close()
        print("Files closed")
    if __name__ == '__main__':
        app.run(
            host="192.168.0.166",
            port=int("8080"),
            debug=True
        )
except KeyboardInterrupt:
    print("Closing")
    for key, value in fileDesc:
        val.close()
    print("Files closed")
Thanks in advance.
 
     
     
    