Sì, ho provato sia con stdout_value = proc.communicate('\n')[0]
che con proc.stdin.write('\n') ma niente da fare. Addirittura con SendKeys non ottengo il risultato... Il 14 aprile 2009 16.05, G. Allegri <gioha...@gmail.com> ha scritto: > 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