[Python] esecuzione subprocess, scrittura stdin e lettura stdout

Alessandro Dentella sandro a e-den.it
Gio 21 Feb 2008 10:36:03 CET


On Thu, Feb 21, 2008 at 10:15:15AM +0100, Shatzu wrote:
> 
>    Salve,
>    sono nuovo di qui!
>    stavo cercando di scrivere uno script python che, lanciando un subprocess
>    che effettua una connessione ssh ad un server, mi permetta poi di eseguire
>    comandi e leggere gli output.
>    Riesco ad effettuare la connessione e anche a far eseguire comandi scrivendo
>    sull'stdin, ma ho problemi a leggere l'output, nel senso che non sempre è
>    completo e a volte con le funzioni read o readline mi si blocca lo script.
>    Come posso fare a leggere tutto l'output dei comandi che lancio?

come lo usi? leggi l'output man mano o vorresti leggerlo alla fine del
comando? Io lo uso normalmente così:

  p =  subprocess.Popen(cmd, stdin=stdin, stdout=stdout, stderr=stderr, **kw)
  (stdout, stderr) = p.communicate(input=subproc_input)

dove in, out err vengono inizializzate da codice non mostrato normalmente a
subprocess.PIPE 

Questo codice però va bene se aspetti che il comando termini l'esecuzione.

sandro
*:-)


More information about the Python mailing list