Forum
>>
Principianti
>>
Eseguire una funzione alla chiusura del terminale
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da Python.append(Me) |
2018-05-20 18:15:01 - Eseguire una funzione alla chiusura del terminale
|
Premetto che programmo con Python 3.6.5 su Windows 10.
Il mio obbiettivo è quello di comporre un semplice programma (da avviare tramite terminale di python, su windows è python.exe) che alla chiusura del terminale esegua una funzione. In allegato il programma Così com'è la funzione chiusura(conn) non viene mai richiamata, ma vorrei che venisse eseguita al tentativo di chiudere il terminale Grazie in anticipo |
|
Scritto da Daniele aka Palmux |
2018-05-21 10:00:11 - Re: Eseguire una funzione alla chiusura del terminale
|
Ciao caro, probabilmente ti basta inserire un try.. except intercettando un KeyboardInterrupt (o qualcosa del genere) nel tuo except.
Prova e fammi sapere se funziona, e se era quello che cercavi. Cya --- Ultima modifica di Daniele aka Palmux in data 2018-05-21 10:01:28 --- |
|
Scritto da Python.append(Me) |
2018-05-21 15:27:14 - Re: Eseguire una funzione alla chiusura del terminale
|
Intendi così? [1° allegato: Prova_server_socket.py]
{ho chiuso il tutto in una classe per comodità e ho provato a apportare la modifica che hai detto, ho messo anche una messagebox di tkinter per vedere se esegue il codice contenuto nel comando except alla chiusura, ma non lo fa} In questo caso no, non funge... Quello che vorrei fare, provo a spiegarmi meglio, è catturare l'evento di chiusura del terminale (per bloccarlo) ed eseguire un altro pezzo di codice aggiuntivo per poi chiudere effettivamente il terminale. Un po' come nel secondo allegato (2° allegato: Prova_protocol_WM_DELETE_WINDOW.py), ma senza dover usare la libreria grafica |
|
Scritto da Daniele aka Palmux |
2018-05-23 09:32:06 - Re: Eseguire una funzione alla chiusura del terminale
|
Non esattamente. Potresti gestire l'eventuale richiesta di interruzione dell'esecuzione nell'except, magari lo farei proprio nell'ultimo blocco del tuo script (l'if). Oppure ancora meglio potresti utilizzare il modulo atexit che fa all'incirca la stessa cosa, ma in maniera più completa ed elegante.
Ah, qui non lo so, ma è una mia mancanza. In casi simili ho mandato in background script che dovevano "vivere" di vita propria, mai affrontato la tua casistica mi spiace. A presto. |
Pagina: 1
Esegui il login per scrivere una risposta.