os.path.abspath(), realpath(), normpath(), normcase() în Python

Căi (os.path) Python 3.0+

Transformă o cale în cale absolută, rezolvă legăturile simbolice și curăță părțile ca „..”.

Sintaxă
os.path.abspath(cale)
os.path.realpath(cale, *, strict=False)
os.path.normpath(cale)
os.path.normcase(cale)

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ște normpath sau os.path.samefile.

Comenzi înrudite