Forum >> Principianti >> Eseguire una funzione alla chiusura del terminale

Pagina: 1

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
Allegati
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 ---
Daniele aka Palmux said @ 2018-05-21 10:00:11:
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 ---
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
Python.append(Me) said @ 2018-05-21 15:27:14:
Intendi così? [1° allegato: Prova_server_socket.py]
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.

Python.append(Me) said @ 2018-05-21 15:27:14:
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

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.