sistem de operare.path-manipulări comune ale căii de cale (cod sursă)

: Lib/posixpath.py (pentru POSIX) andLib/ntpath.py (Pentru Windows NT).

acest modul implementează unele funcții utile pe nume de cale. Pentru a citi sau a scrie fișiere, consultați open(), iar pentru accesarea sistemului de fișiere consultați modululos. Parametrii căii pot fi trecuți fie ca șiruri, fie ca octeți. Aplicațiile sunt încurajate să reprezinte numele fișierelor ca șiruri de caractere(Unicode). Din păcate, este posibil ca unele nume de fișiere să nu fie reprezentative ca șiruri pe Unix, astfel încât aplicațiile care trebuie să suporte nume de fișiere arbitrare pe Unix ar trebui să utilizeze obiecte de octeți pentru a reprezenta nume de cale. Invers, utilizarea obiectelor bytes nu poate reprezenta toate numele de fișiere pe Windows (în codificarea standard mbcs), prin urmare Windowsapplications ar trebui să utilizeze obiecte string pentru a accesa toate fișierele.

spre deosebire de un shell unix, Python nu face nicio extindere automată a căii.Funcții precum expanduser() și expandvars() pot fi invocateexplicit atunci când o aplicație dorește extinderea căii de tip shell. (A se vedea șimodul glob.)

a se vedea, de asemenea,

modulul pathlib oferă obiecte de cale la nivel înalt.

notă

toate aceste funcții acceptă fie numai octeți, fie numai obiecte șirparametrii lor. Rezultatul este un obiect de același tip, dacă o cale saunumele fișierului este returnat.

notă

deoarece diferite sisteme de operare au convenții diferite de nume de cale, există mai multe versiuni ale acestui modul în biblioteca standard. Modulul os.path este întotdeauna modulul cale adecvat pentru operatingsystem Python rulează pe, și, prin urmare, utilizabil pentru căi locale. Cu toate acestea, puteți importa și utiliza modulele individuale dacă doriți să manipulațio cale care este întotdeauna într-unul dintre diferitele formate. Toți au aceeași interfață:

  • posixpath pentru căi în stil UNIX

  • ntpath pentru căile Windows

schimbat în versiunea 3.8: exists(), lexists(), isdir(), isfile(),islink(), și ismount() acum reveniți False în loc să ridicați o excepție pentru căile care conțin caractere sau octețiinreprezentabile la nivelul sistemului de operare.

os.path.abspath(cale)

returnează o versiune absolutizată normalizată a căii numelor de cale. Pe majoritatea platformelor, acest lucru este echivalent cu apelarea funcției normpath() caurmează: normpath(join(os.getcwd(), path)).

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.basename(cale)

se returnează numele de bază al căii de cale. Acesta este al doilea element depereche returnat prin trecerea căii către funcția split(). Rețineți că rezultatul acestei funcții este diferit de programul Unix basename; unde basename pentru '/foo/bar/' returnează 'bar', funcțiabasename()returnează șirul anempty ('').

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.commonpath(căi)

se întoarce cea mai lungă sub-cale comună a fiecărui nume de cale în căile secvențiale. Ridicați ValueError dacă căile conțin atât nume de cale absolute, cât și nume de cale relative, căile sunt pe diferite unități saudacă căile sunt goale. Spre deosebire de commonprefix(), aceasta returnează calea avalidă.

Disponibilitate: Unix, Ferestre.

nou în versiunea 3.5.

schimbat în versiunea 3.6: acceptă o secvență de obiecte asemănătoare căii.

os.path.commonprefix(listă)

se întoarce cea mai lungă cale prefixul (luate caracter-cu-caracter), care este aprefix de toate căile din listă. Dacă lista este goală, returnați șirul gol ('').

notă

această funcție poate returna căi nevalide, deoarece funcționează acaracter la un moment dat. Pentru a obține o cale validă, consultațicommonpath().

>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'

schimbat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.dirname(cale)

returnați numele directorului căii de cale. Acesta este primul element al perechii returnate prin trecerea căii către funcția split().

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.exists(cale)

întoarcere True dacă cale se referă la o cale existentă sau la un descriptor openfile. Returnează False pentru legături simbolice rupte. Pe unele platforme, această funcție poate reveni False dacă nu se acordă permisiunea de a executa os.stat() în fișierul solicitat, chiardacă calea există fizic.

schimbat în versiunea 3.3: calea poate fi acum un număr întreg: True este returnat dacă este un descriptor de fișier deschis, False altfel.

schimbat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.lexists(cale)

întoarcere True dacă cale se referă la o cale existentă. Returnează True forbroken link-uri simbolice. Echivalent cu exists() pe platforme lipsite deos.lstat().

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.expanduser(in Unix si Windows, returnati argumentul cu o componenta initiala de~sau~userinlocuita de directorul home al acelui utilizator.

pe Unix, o ~inițială este înlocuită de variabila de mediu HOMEdacă este setată; în caz contrar, directorul principal al utilizatorului curent este căutat în directorul de parole prin modulul încorporat pwd. Un ~user inițial este căutat direct în directorul de parole.

pe Windows, USERPROFILE va fi utilizat dacă este setat, altfel va fi utilizată o combinație de HOMEPATH și HOMEDRIVE. O inițială ~user este tratată prin eliminarea ultimei componente de director din calea createduser derivată mai sus.

dacă expansiunea eșuează sau dacă calea nu începe cu o tildă, calea esterevenit neschimbată.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

schimbat în versiunea 3.8: nu mai utilizează HOME pe Windows.

os.path.expandvars(7556 > returnați argumentul cu variabilele de mediu extinse. Substringurile formularului$namesau${name}sunt înlocuite cu valoarea environment variablename. Numele variabilelor malformate și referințele la variabilele inexistente suntlăsat neschimbat.

pe Windows, %name% extensiile sunt acceptate în plus față de$nameși ${name}.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.getatime(cale)

se returnează ora ultimei accesări a căii. Valoarea returnată este un număr în virgulă mobilă care oferănumărul de secunde de la epocă (a se vedea modulul time). Ridicați OSError dacă fișierul nu există sau este inaccesibil.

os.path.getmtime(cale)

se returnează ora ultimei modificări a căii. Valoarea returnată este un număr în virgulă flotantăoferind numărul de secunde de la epocă (vezi modulul time).Ridicați OSError dacă fișierul nu există sau este inaccesibil.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.getctime(7556 > returnează ctime-ul sistemului care, pe unele sisteme (cum ar fi Unix) este timpul ultimei modificări a metadatelor și, pe altele (cum ar fi Windows), este timpul de creare a path.Valoarea returnată este un număr care dă numărul de secunde de la epocă (modulul seethetime). RidicațiOSErrordacă fișierul nu există saueste inaccesibil.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.getsize(cale)

se returnează dimensiunea, în octeți, a căii. Ridicați OSError dacă fișierul nu există sau este inaccesibil.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.isabs(int

întoarcere True dacă calea este un nume de cale absolut. Pe Unix, asta înseamnăîncepe cu o bară oblică, pe Windows că începe cu o bară oblică (înapoi)după ce a tăiat o literă de unitate potențială.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.isfile(cale)

întoarcere True dacă cale este un existing fișier regulat.Aceasta urmează legături simbolice, astfel încât atât islink(), cât și isfile() pot fi adevărate pentru aceeași cale.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.isdir(cale)

întoarcere True dacă calea este un director existing. Aceasta urmărește legături simbolice, deci atât islink() cât și isdir() pot fi adevărate pentru aceeași cale.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.islink(in cazul in care calea se refera la unexistingdirectoryentry care este o legatura simbolica. ÎntotdeaunaFalsedacă legăturile simbolice nu suntsupported de runtime Python.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.ismount(cale)

întoarcere True dacă calea de cale este un punct de montare: un punct în sistemul afile unde a fost montat un alt sistem de fișiere. Pe POSIX, funcția verifică dacă părintele path, path/.., este pe un dispozitiv diferit de path sau dacă path/.. și path indică același nod pe același dispozitiv-acest lucru ar trebui să detecteze punctele de montare pentru toate variantele UNIX și POSIX. Nu este capabil să detecteze în mod fiabil suporturile de legare peacelași sistem de fișiere. Pe Windows, o rădăcină a literei de unitate și o partajare UNC suntpuncte de montare întotdeauna, iar pentru orice altă cale GetVolumePathName este apelatăpentru a vedea dacă este diferită de calea de intrare.

nou în versiunea 3.4: suport pentru detectarea punctelor de montare non-root pe Windows.

schimbat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.join(cale, * căi)

se alăture unul sau mai multe componente cale inteligent. Valoarea returnată este theeconcatenation de cale și orice membri ai * căi cu separator exact onedirectory (os.sep) după fiecare parte non-gol, cu excepția thelast, ceea ce înseamnă că rezultatul se va termina numai într-un separator în cazul în care lastpart este gol. Dacă o componentă este o cale absolută, toate componentele anterioare sunt aruncate și aderarea continuă de la calea absolută.

pe Windows, litera unității nu este resetată atunci când se întâlnește o componentă de cale absolută(de exemplu, r'\foo'). Dacă o componentă conține un driveletter,toate componentele anterioare sunt aruncate și litera de unitate isreset. Rețineți că, deoarece există un director curent pentru fiecare unitate,os.path.join("c:", "foo") reprezintă o cale în raport cu currentdirectory pe unitate C: (c:foo), nu c:\foo.

modificat în versiunea 3.6: acceptă un obiect asemănător căii pentru cale și căi.

os.path.normcase(7556>normalizați cazul unui nume de cale. Pe Windows, convertiți toate caracterele dinnumele căii în litere mici și, de asemenea, convertiți slash-urile înainte în slash-uri înapoi.Pe alte sisteme de operare, returnați calea neschimbată.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.normpath

(7556 > normalizați un nume de cale prin prăbușirea separatoarelor redundante și a referințelor de nivel superior, astfel încâtA//B,A/B/,A/./BșiA/foo/../BtoatedevenițiA/B. Această manipulare a șirurilor poate schimba sensul unei căi care conține legături simbolice. Pe Windows, acesta convertește slash-urile înainte lablash-uri înapoi. Pentru a normaliza cazul, utilizaținormcase().

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.realpath(7556 > returnați calea canonică a numelui de fișier specificat, eliminând orice legături simbolice întâlnite în cale (dacă sunt acceptate de sistemul de operare).

notă

când ciclurile de legătură simbolică apar, calea returnată va fi un membru al ciclului, dar nu se oferă nicio garanție cu privire la membrul care va fi.

schimbat în versiunea 3.6: acceptă un obiect asemănător căii.

schimbat în versiunea 3.8: legăturile simbolice și joncțiunile sunt acum rezolvate pe Windows.

os.path.relpath(cale, start = sistem de operare.curdir)

returnați o cale de fișier relativă la calea fie din directorul curent, fie dintr-un director de pornire opțional. Acesta este un calcul cale: thefilesystem nu este accesat pentru a confirma existența sau natura cale orstart.

porniți valorile implicite la os.curdir.

Disponibilitate: Unix, Ferestre.

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.samefile(path1, path2)

întoarcere True dacă ambele argumente nume de cale se referă la același fișier sau director.Acest lucru este determinat de numărul dispozitivului și numărul I-node și ridică anexception dacă un apel os.stat() pe oricare nume de cale eșuează.

Disponibilitate: Unix, Ferestre.

schimbat în versiunea 3.2: Adăugat suport pentru Windows.

schimbat în versiunea 3.4: Windows folosește acum aceeași implementare ca toate celelalte platforme.

schimbat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.sameopenfile(fp1, fp2)

True dacă descriptorii de fișiere fp1 și fp2 se referă la același fișier.

Disponibilitate: Unix, Ferestre.

schimbat în versiunea 3.2: Adăugat suport pentru Windows.

schimbat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.samestat(stat1, stat2)

întoarcere True dacă tuplurile stat stat1 și stat2 se referă la același fișier.Este posibil ca aceste structuri să fi fost returnate de os.fstat(),os.lstat() sau os.stat(). Această funcție implementeazăcomparația subterană utilizată de samefile()și sameopenfile().

Disponibilitate: Unix, Ferestre.

schimbat în versiunea 3.4: Adăugat suport pentru Windows.

schimbat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.split(cale)

împărțiți calea de cale într-o pereche, (head, tail) unde coada este ultima componentă de cale și capul este tot ceea ce duce la asta. Partea coada de rândunică nu va conține niciodată o bară; dacă calea se termină într-o bară, coada va fi goală. Dacă nu există nici o slash în calea, capul va fi gol. Dacă calea este goală, atât capul, cât și coada sunt goale. Slash-urile finale suntstripate din cap, cu excepția cazului în care este rădăcina (numai una sau mai multe slash-uri). În toate cazurile, join(head, tail) returnează o cale în aceeași locație ca path (dar șirurile pot diferi). A se vedea, de asemenea, funcțiile dirname() șibasename().

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.splitdrive(cale)

împărțiți calea de cale într-o pereche (drive, tail) unde unitatea este fie un punct de montare, fie șirul gol. Pe sistemele care nu utilizează drivespecifications, drive va fi întotdeauna șirul gol. În toate cazurile, drive+ tail va fi la fel ca path.

pe Windows, împarte un nume de cale în Drive/UNC sharepoint și calea relativă.

dacă calea conține o literă de unitate, unitatea va conține totul până la și inclusiv două puncte.de ex. splitdrive("c:/dir") returnează ("c:", "/dir")

dacă calea conține o cale UNC, unitatea va conține numele gazdei și cota, până la, dar nu inclusiv al patrulea separator.de exemplu splitdrive("//host/computer/dir") returnează ("//host/computer", "/dir")

schimbat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.splitext(Path)

împărțiți calea de cale într-o pereche (root, ext) astfel încât root + ext ==path, și ext este gol sau începe cu o perioadă și conține cel mult oneperiod. Perioadele de conducere pe numele de bază sunt ignorate; splitext('.cshrc')returnează ('.cshrc', '').

modificat în versiunea 3.6: acceptă un obiect asemănător căii.

os.path.supports_unicode_filenames

Lasă un răspuns

Adresa ta de email nu va fi publicată.

More: