Ce face os.path.abspath(), realpath(), normpath(), normcase()
normpath() curăță textul unei căi: elimină ., rezolvă .. și separatoarele duble, fără să acceseze discul. abspath() face calea absolută (pornind de la directorul curent) și apoi o normalizează.
realpath() face în plus rezolvarea legăturilor simbolice, dând calea „reală” de pe disc; cu strict=True aruncă eroare dacă o parte lipsește. normcase() transformă calea în litere mici și cu \ pe Windows, iar pe Linux și macOS o lasă neschimbată.
Parametri
| Parametru | Descriere |
|---|---|
cale |
Calea. |
Ce returnează
Un text.
Exemple
Exemplul 1: Normalizare
import os
print(os.path.normpath("/home/ana/./poze/../documente//cv.pdf"))
print(os.path.abspath("/var/www/../log/app.log"))
print(os.path.normcase("/Home/Ana/Doc.TXT"))
Rezultat
/home/ana/documente/cv.pdf
/var/log/app.log
/Home/Ana/Doc.TXT
Exemplul 2: Rezolvarea unei legături simbolice
import os
open("original.txt", "w").close()
os.symlink("original.txt", "scurtatura.txt")
print(os.path.basename(os.path.abspath("scurtatura.txt")))
print(os.path.basename(os.path.realpath("scurtatura.txt")))
print(os.path.isabs(os.path.abspath("x")))
Rezultat
scurtatura.txt
original.txt
True
Greșeli frecvente
- Compari două căi ca text fără să le normalizezi:
"a/./b"și"a/b"par diferite. Foloseștenormpathsauos.path.samefile.
Comenzi înrudite
os.path.relpath(), commonpath() și commonprefix(): Calea relativă de la un director la altul și partea comună a mai multor căi.Path.resolve(), absolute(), relative_to() și verificările de cale: Transformă căile în căi absolute sau relative și le compară.os.getcwd() și os.chdir(): Află și schimbă directorul de lucru curent al programului.