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știOSError: Bad file descriptor.
Comenzi înrudite
os.open(), read(), write(), lseek(), close(), closerange(): Lucrul de nivel jos cu fișierele, prin descriptori numerici, ca în C.os.pipe(): Creează o „țeavă” anonimă: ce scrii la un capăt citești la celălalt.open() și with: Deschide un fișier pentru citire sau scriere; cu with, fișierul este închis automat.