Gentili colleghi pythonisti, sono alle prese col modulo subprocess, perché devo interagire con un'applicazione console su Windows (di terze parti), la quale richiede alla fine dell'esecuzione (e dopo aver stampato i risultati sullo stdout) che l'utente prema sulla tastiera per fare terminare il processo.
Sono bloccato alle prime righe: proc = subprocess.Popen('la_mia_applicazione', shell=True, stdout=subprocess.PIPE, ) stdout_value = proc.communicate()[0] #stdout_value = proc.stdout.readlines() PROCESS_TERMINATE = 1 handle = win32api.OpenProcess(PROCESS_TERMINATE, False, proc.pid) win32api.TerminateProcess(handle, -1) win32api.CloseHandle(handle) print stdout_value Ho usato TerminateProcess per forzare l'uscita dall'applicazione senza l'interazione con l'utente, ma ricevo un errore di 'Access Denied' perché, suppongo, proc.communicate (ma anche proc.stdout.readlines) mantengono un handle su proc in attesa, forse, di un EOF, che non ci sarà mai poiché l'applicazione non termina... Se non leggo lo stdout, ovviamente, riesco a forzare il termine del programma senza errori. Come posso uscire da questo inghippo? Grazie, Giovanni _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python