In Python 3.2 (e altre versioni), i documentation for os.open stati:Caso di utilizzo per os.open, os.fdopen e amici di basso livello?
Questa funzione è destinato a basso livello di I/O. Per l'utilizzo normale, utilizzare la funzione built-in open(), che restituisce un oggetto file con i metodi read() e write() (e molti altri). Per avvolgere un descrittore di file in un oggetto file, utilizzare fdopen().
E for fdopen():
restituire un oggetto file aperto collegato al descrittore di file fd. Questo è un alias di open() e accetta gli stessi argomenti. L'unica differenza è che il primo argomento di fdopen() deve sempre essere un numero intero.
This comment in una domanda sulla differenza tra io.open
e os.open
(questa differenza è del tutto chiaro per me, io uso sempre io.open
, mai os.open
) chiede: perché qualcuno dovrebbe scegliere Python per basso livello di I/O?, ma in realtà non ottiene una risposta.
La mia domanda è molto simile al commento-domanda: In Python, qual è il caso d'uso di basso livello I/O tramite os.open
, os.fdopen
, os.close
, os.read
, ecc? Ero solito pensare che fosse necessario per deamonizzare un processo, ma I'm not so sure anymore. È possibile eseguire solo utilizzando l'I/O di basso livello e non con i wrapper di livello superiore?
La mia ipotesi è che i wrapper di livello superiore utilizzino queste funzioni. Per lo meno il modulo 'tempfile' usa la maggior parte di questi su python 2.7.3 ... – mgilson
@mgilson Quindi la mia domanda è, perché non posso usare tempfile quelli di livello superiore? – gerrit