W Pythonie 3.2 (i inne wersje) z documentation for os.open stanowi:Przypadek użycia dla niskiego poziomu os.open, os.fdopen i przyjaciół?
Funkcja ta jest przeznaczona do niskiego poziomu I/O. Do normalnego użycia użyj wbudowanej funkcji open(), która zwraca obiekt pliku za pomocą metod read() i write() (i wielu innych). Aby zawinąć deskryptor pliku w obiekcie pliku, użyj fdopen().
I for fdopen():
Powrót otwarty obiekt połączony plik deskryptora pliku fd. Jest to alias funkcji open() i akceptuje te same argumenty. Jedyna różnica polega na tym, że pierwszy argument fdopen() musi zawsze być liczbą całkowitą.
This comment na pytanie o różnicę między io.open
i os.open
(ta różnica jest całkowicie jasne dla mnie, Zawsze używam io.open
, nigdy os.open
) pyta: dlaczego ktoś miałby wybierać Pythona na niskim poziomie I/O?, ale tak naprawdę nie otrzymuje odpowiedzi.
Moje pytanie jest bardzo podobny do komentarza-pytanie: w Pythonie, co ma miejsce w przypadku korzystanie z niskiego poziomu I/O poprzez os.open
, os.fdopen
, os.close
, os.read
, itd.? Kiedyś myślałem, że to było konieczne do deamonizacji procesu, ale I'm not so sure anymore. Czy jest jakieś zadanie, które można wykonać tylko przy użyciu niskiego poziomu we/wy, a nie w przypadku owijaczy wyższego poziomu?
Domyślam się, że opakowania wyższego poziomu używają tych funkcji. Co najmniej moduł 'tempfile' używa większości z nich na python 2.7.3 ... – mgilson
@mgilson Następnie moje pytanie brzmi, dlaczego nie można użyć plików tempfile wyższych poziomów? – gerrit