os.fdopen() în Python

Transformă un descriptor numeric într-un obiect fișier obișnuit.

Sintaxă
os.fdopen(fd, mode='r', ...)

Ce face os.fdopen()

fdopen(fd, mod) învelește un descriptor (obținut cu os.open, os.pipe etc.) într-un obiect fișier Python, cu read(), write(), citire pe rânduri și with. Este echivalent cu open(fd, mod). La închiderea obiectului se închide și descriptorul.

Parametri

Parametru Descriere
fd Descriptorul.
mode, ... Ca la open().

Ce returnează

Un obiect fișier.

Exemple

Exemplul 1: Fișier creat exclusiv, apoi folosit normal

import os
fd = os.open("raport_nou.txt", os.O_WRONLY | os.O_CREAT | os.O_EXCL, 0o600)
with os.fdopen(fd, "w", encoding="utf-8") as f:
    f.write("Raport generat\n")
with open("raport_nou.txt", encoding="utf-8") as f:
    print(f.read(), end="")

Rezultat

Raport generat

Greșeli frecvente

  • Apelezi și os.close(fd) după ce ai închis obiectul fișier: descriptorul este deja închis și primești OSError: Bad file descriptor.

Comenzi înrudite