os.getcwd() și os.chdir() în Python

Află și schimbă directorul de lucru curent al programului.

Sintaxă
os.getcwd()
os.getcwdb()
os.chdir(cale)
os.fchdir(fd)

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