Ce face os.getcwd() și os.chdir()
Căile relative (open("date.txt")) sunt interpretate față de directorul de lucru curent, care este de obicei directorul din care ai pornit programul, nu cel în care se află scriptul. getcwd() îl returnează ca text, getcwdb() ca bytes.
chdir(cale) schimbă directorul curent pentru tot procesul; fchdir(fd) face același lucru pornind de la un descriptor de director deschis. Pentru a lucra relativ la script, folosește Path(__file__).parent.
Parametri
| Parametru | Descriere |
|---|---|
cale / fd |
Noul director de lucru. |
Ce returnează
getcwd: text. getcwdb: bytes. chdir/fchdir: None.
Exemple
Exemplul 1: Schimbarea directorului curent
import os
start = os.getcwd()
os.makedirs("proiect/date", exist_ok=True)
os.chdir("proiect")
print(os.path.basename(os.getcwd()), os.listdir("."))
os.chdir("..")
print(os.getcwd() == start, type(os.getcwdb()).__name__)
fd = os.open("proiect/date", os.O_RDONLY)
os.fchdir(fd)
os.close(fd)
print(os.path.basename(os.getcwd()))
Rezultat
proiect ['date']
True bytes
date
Greșeli frecvente
- Deschizi fișiere cu căi relative și scriptul merge doar când e pornit din directorul lui. Construiește căile pornind de la
Path(__file__).parent.
Comenzi înrudite
pathlib.Path: Căile ca obiecte: unire cu /, citire, scriere și verificări, într-un singur loc.os.path.abspath(), realpath(), normpath(), normcase(): Transformă o cale în cale absolută, rezolvă legăturile simbolice și curăță părțile ca „..”.os.listdir(): Returnează lista numelor fișierelor și directoarelor dintr-un director.