6.1.2 Tworzenie obiektów plikowych

Przedstawione poniżej funkcje służą tworzeniu nowych obiektów plikowych.

fdopen(fd[, tryb[, rozmiar_bufora]])
Zwraca otwarty obiekt plikowy powiązany z deskryptorem pliku o wartości fd.  Argumenty tryb i rozmiar_bufora pełnią taką samą rolę, jak odpowiadające im argumenty wbudowanej funkcji open(). Dostępność: Macintosh, Unix, Windows.

Zmieniono w wersji 2.3: Jeśli zostanie podany argument tryb, musi się on rozpoczynać jedną z trzech liter: "r", "w" lub "a", w przeciwnym wypadku wygenerowany zostanie wyjątek ValueError.

popen(polecenie[, tryb[, rozmiar_bufora]])
Otwiera potok powiązany z nowym procesem wykonującym command. Zwracaną wartością jest otwarty obiekt plikowy powiązany z potokiem, który może służyć do odczytu lub zapisu, zależnie od tego, czy wartością parametru tryb jest 'r' (domyślnie) czy też 'w'. Argument rozmiar_bufora pełni taką samą rolę, jak odpowiadający mu argument wbudowanej funkcji open(). Stan zakończenia polecenia (zakodowany w formacie odpowiednim dla funkcji wait()) dostępny jest jako wartość zwracana przez metodę close() obiektu plikowego. Wyjątkiem jest sytuacja, w której kod stanu zakończenia ma wartość zero (zakończenie bez błędów): metoda close() zwraca wówczas wartość None. Dostępność: Unix, Windows.

Zmieniono w wersji 2.0: We wcześniejszych wersjach Pythona funkcja ta działała niestabilnie w systemie Windows. Powodem tego było użycie funkcji _popen() z bibliotek dostarczanych wraz z systemem Windows. Nowsze wersje Pythona nie używają błędnej implementacji wchodzącej w skład bibliotek systemu Windows..

tmpfile()
Zwraca nowy obiekt plikowy otwarty w trybie aktualizacji ("w+b"). Z plikiem nie są związane pozycje w jakimkolwiek katalogu i zostanie on automatycznie usunięty z chwilą, gdy nie pozostanie żaden wskazujący na niego otwarty deskryptor. Dostępność: Unix, Windows.

W przypadku każdej z odmian funkcji popen(), jeśli zostanie podany argument rozmiar_bufora, wówczas określa on rozmiar bufora używanego w komunikacji za pośrednictwem potoków . Jeśli zostanie podany argument tryb, to powinien on być napisem o wartości code'b' lub 't'. W systemie Windows podana wartość potrzebna jest do określenia, czy obiekt powinien być otwarty w trybie binarnym, czy tekstowym. Domyślną wartością argumentu tryb jest 't'.

Opisane metody nie umożliwiają pobrania kodu powrotu z procesów potomnych. Jedynym sposobem na kontrolowanie strumieni wejściowych i wyjściowych oraz pobranie kodu powrotu jest użycie klasy Popen3 lub Popen4 z mozułu popen2. Dostępne są one tylko w systemie Unix.

Omówienie możliwych sytuacji zakleszczeń, związanych z użyciem tych funkcji, omówiono w części "Zagadnienia związane z przepływem sterowania" (sekcja 6.8.2).

popen2(polecenie[, tryb[, rozmiar_bufora]])
Wykonuje w procesie potomnym polecenie polecenie. Zwraca parę obiektów Dostępność: Unix, Windows. Dodano w wersji 2.0.

popen3(polecenie[, tryb[, rozmiar_bufora]])
Wykonuje w procesie potomnym polecenie polecenie. Zwraca trójkę obiektów Dostępność: Unix, Windows. Dodano w wersji 2.0.

popen4(polecenie[, tryb[, rozmiar_bufora]])
Wykonuje w procesie potomnym polecenie polecenie. Zwraca parę obiektów Dostępność: Unix, Windows. Dodano w wersji 2.0.

Realizację tych samych zadań umożliwia moduł popen2, udostępniający funkcje o tych samych nazwach, lecz zwracający wartości o różnym porządku.

Zajrzyj do Informacji na temat tej publikacji... aby pomóc w jej rozwoju.