6.1.2 Creazioni di oggetti file

Queste funzioni creano nuovi oggetti file.

fdopen( fd[, mode[, bufsize]])
Restituisce un oggetto file aperto, collegato al descrittore di file fd. Gli argomenti mode e bufsize hanno lo stesso significato dei corrispondenti argomenti della funzione built-in open(). Disponibilità: Macintosh, Unix, Windows.

Modificato nella versione 2.3: Quando specificato, l'argomento mode deve cominciare con una delle tre lettere "r", "w", o "a", altrimenti viene sollevata un'eccezione ValueError.

popen( command[, mode[, bufsize]])
Lancia un sotto processo che esegue command ed apre una pipe da o verso quel processo. Il valore restituito è un oggetto file collegato alla pipe, che può venire letto o scritto a seconda che l'argomento mode sia 'r' (predefinito) o 'w'. L'argomento bufsize ha lo stesso significato del corrispondente argomento della funzione built-in open(). Lo stato di uscita del comando eseguito (codificato nel formato specificato per wait()) è disponibile come valore restituito dal metodo close() quando applicato all'oggetto file, eccetto il caso in cui lo stato di uscita sia zero (comando completato senza errori), nel qual caso il metodo close() restituisce None. Disponibilità: Unix, Windows.

Modificato nella versione 2.0: Questa funzione non era affidabile in Windows in versioni precedenti di Python. Questo era dovuto all'uso della funzione _popen() fornita dalle librerie di Windows. Le nuove versioni di Python non usano l'implementazione _popen() difettosa fornita dalle librerie di Windows.

tmpfile( )
Restituisce un nuovo oggetto file aperto in modalità aggiornamento ("w+b"). Il file non viene associato ad alcun elemento di directory, e viene cancellato una volta che non ci siano più descrittori che fanno riferimento ad esso. Disponibilità: Unix, Windows.

Per ciascuna di queste varianti di popen(), se l'argomento bufsize viene usato, specifica la dimensione del buffer per le pipe I/O. Se fornito, l'argomento mode dovrebbe essere o la stringa 'b' oppure la stringa 't'; in Windows questo è necessario per determinare se gli oggetti file debbano venire aperti in modalità binaria o in modalità testuale. Il valore predefinito per l'argomento mode è 't'.

Questi metodi non danno modo di ottenere il codice di ritorno dal processo figlio. L'unico modo di controllare i flussi di input ed output, ed in più, di ottenere i codici restituiti, è quello di usare le classi Popen3 e Popen4 del modulo popen2; queste classi sono disponibili solo su Unix.

Per una discussione delle possibili condizioni di deadlock collegate all'uso di queste funzioni, vedete ``Problemi con il controllo di flusso'' (sezione 6.8.2).

popen2( cmd[, mode[, bufsize]])
Esegue cmd come processo derivato. Restituisce gli oggetti file (child_stdin, child_stdout). Disponibilità: Unix, Windows. Nuovo nella versione 2.0.

popen3( cmd[, mode[, bufsize]])
Esegue cmd come processo derivato. Restituisce gli oggetti file (child_stdin, child_stdout, child_stderr). Disponibilità: Unix, Windows. Nuovo nella versione 2.0.

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

Questa funzionalità è anche disponibile nel modulo popen2, utilizzando funzioni con gli stessi nomi, ma i valori restituiti da queste hanno diverso ordinamento.

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