6.8 popen2 -- Sotto processi con flussi di I/O accessibili

Disponibilità: Unix, Windows.

Questo modulo permette di creare sotto processi, di connettersi ai loro canali input/output/error e di ottenere i loro codici di uscita in Unix e Windows.

Notate che a partire da Python 2.0, questa funzionalità è disponibile utilizzando le funzioni del modulo os che hanno lo stesso nome delle funzioni factory qui descritte, ma l'ordine dei valori restituiti è più intuitivo rispetto al quello delle varianti del modulo os.

L'interfaccia primaria offerta da questo modulo è composta da una terna di funzioni factory. Per ciascuna di queste, se viene specificato l'argomento bufsize, esso indica la dimensione del buffer per le pipe I/O. Il parametro mode, se fornito, dovrebbe esere la stringa 'b' o 't'; in Windows questo è necessario per determinare se gli oggetti file devono venire aperti in modo binario o in modo testo. Il valore predefinito per mode è 't'.

L'unico modo di recuperare i codici restituiti per i processi figli è quello di utilizzare i metodi poll() o wait() sulle classi Popen3 e Popen4; queste sono disponibili solo su Unix. Questa informazione non è disponibile usando le funzioni popen2(), popen3() e popen4(), o le funzioni equivalenti nel modulo os.

popen2( cmd[, bufsize[, mode]])
Esegue cmd come processo derivato. Restituisce la coppia di oggetti file (child_stdout, child_stdin).

popen3( cmd[, bufsize[, mode]])
Esegue cmd come processo derivato. Restituisce la tripla di oggetti file (child_stdout, child_stdin, child_stderr).

popen4( cmd[, bufsize[, mode]])
Esegue cmd come processo derivato. Restituisce gli oggetti file (child_stdout_and_stderr, child_stdin). Nuovo nella versione 2.0.

Su Unix, è anche disponibile una classe che definisce gli oggetti restituiti dalle funzioni factory. Queste non vengono usate nell'implementazione per Windows e non sono quindi disponibili per questa piattaforma.

class Popen3( cmd[, capturestderr[, bufsize]])
Questa classe rappresenta un processo derivato. Normalmente, istanze di Popen3 vengono create utilizzando le funzioni factory popen2() e popen3() descritte in precedenza.

Se non si sta usando una delle funzioni dell'helper per creare oggetti Popen3, il parametro cmd è il comando di shell da eseguire nel processo derivato. L'opzione capturestderr, se è True, specifica che l'oggetto dovrebbe anche catturare i dati emessi sullo standard error del processo figlio. Il valore predefinito per questa opzione è False. Se il parametro bufsize viene specificato, esso specifica la dimensione dei buffer di I/O verso e dal sotto processo.

class Popen4( cmd[, bufsize])
Simile a Popen3, ma cattura sempre i dati emessi sullo standard error nello stesso oggetto file di quelli emessi sullo standard output. Istanze di questa classe vengono tipicamente generate usando popen4(). Nuovo nella versione 2.0.



Subsections
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.