Kildekode: Lib/posixpath.py (FOR POSIX) andLib/ntpath.py (for Windows NT).
denne modulen implementerer noen nyttige funksjoner på banenavn. For å lese orwrite filer seopen()
, og for å få tilgang til filsystemet se os
modulen. Baneparametrene kan sendes som enten strenger eller byte. Programmer oppfordres til å representere filnavn som (Unicode) tegnstrenger. Dessverre kan noen filnavn ikke berepresentable som strenger På Unix, så programmer som trenger å støttevilkårlige filnavn På Unix, bør bruke byte-objekter til å representerebanenavn. Omvendt, bruk av byte-objekter kan ikke representere alle filnavn På Windows (i standardkodingen mbcs
), Derfor Bør Windowsapplications bruke strengobjekter for å få tilgang til alle filer.
I Motsetning til et unix-skall, Gjør Python ingen automatiske baneutvidelser.Funksjoner som expanduser()
og expandvars()
kan invokedexplicit når et program ønsker shell-lignende bane utvidelse. (Se også glob
modulen.)
Se også
modulen pathlib
tilbyr baneobjekter på høyt nivå.
Obs!
alle disse funksjonene godtar enten bare byte eller bare strengobjekter somderes parametere. Resultatet er et objekt av samme type, hvis en bane ellerfilnavn returneres.
Merk
siden forskjellige operativsystemer har forskjellige banenavnkonvensjoner, finnes det flere versjoner av denne modulen i standardbiblioteket. Modulen os.path
er alltid banemodulen som passer for operatingsystem Python kjører på, og kan derfor brukes til lokale baner. Du kan imidlertid også importere og bruke de enkelte modulene hvis du vil manipulereen sti som alltid er i et av de forskjellige formatene. De har alle samme grensesnitt:
-
posixpath
FOR UNIX-stil baner -
ntpath
For Windows-baner
Endret i versjon 3.8: exists()
, lexists()
, isdir()
, isfile()
,islink()
, og ismount()
returnerer nå False
i stedet for å heve et unntak for baner som inneholder tegn eller bytesunrepresentable PÅ OS-nivå.
os.path.
abspath
(sti)¶
Returner en normalisert absolutized versjon av banenavnet banen. På mostplatforms tilsvarer dette å kalle funksjonen normpath()
asfollows: normpath(join(os.getcwd(), path))
.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
basename
(sti)¶
Returner basisnavnet til banenavn bane. Dette er det andre elementet ipar returnert ved å passere banen til funksjonen split()
. Merk atresultatet av denne funksjonen er forskjelligfra Unix basename-programmet; hvor basename for'/foo/bar/'
returnerer 'bar'
, returnerer funksjonen basename()
anempty-streng (''
).
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
commonpath
(stier)¶
Returner den lengste vanlige underbanen til hvert banenavn i sekvensbanene. Raise ValueError
hvis banene inneholder både absoluteand relative banenavn, banene er på de ulike stasjonene ellerhvis banene er tomme. I motsetning til commonprefix()
returnerer dette avalid-banen.
Tilgjengelighet: Unix, Windows.
Nytt i versjon 3.5.
Endret i versjon 3.6: Godtar en sekvens av banelignende objekter.
os.path.
commonprefix
(list)¶
Returner det lengste baneprefikset (tatt tegn-for-tegn) som er aprefiks av alle baner i listen. Hvis listen er tom, returnerer du den tomme strengen (''
).
Merk
denne funksjonen kan returnere ugyldige baner fordi den fungerer acharacter om gangen. For å få en gyldig bane, secommonpath()
.
>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'
Endret i versjon 3.6: Godtar en bane-lignende objekt.
os.path.
dirname
(sti)¶
Returner katalognavnet til banenavn bane. Dette er det første elementet iparet returnerte ved å passere banen til funksjonen split()
.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
exists
(sti)¶
Retur True
hvis sti refererer til en eksisterende bane eller en openfile-beskrivelse. Returnerer False
for ødelagte symbolske lenker. På noen plattformer kan denne funksjonen returnere False
hvis tillatelse ikke er gitt til å utføre os.stat()
på den forespurte filen, selv om banen fysisk eksisterer.
Endret i versjon 3.3: banen kan nå være et heltall: True
returneres hvis det er en åpen filbeskrivelse, False
ellers.
Endret i versjon 3.6: Godtar en bane-lignende objekt.
os.path.
lexists
(sti)¶
Retur True
hvis sti refererer til en eksisterende sti. Returnerer True
forbroken symbolske lenker. Tilsvarende exists()
på plattformer som mangleros.lstat()
.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
expanduser
(sti)¶
på Unix og Windows, returner argumentet med en innledende komponent på ~
eller ~user
erstattet av brukerens hjemmekatalog.
På Unix erstattes en innledende ~
av miljøvariabelen HOME
hvis den er angitt; ellers blir gjeldende brukers hjemmekatalog slått opp i password-katalogen gjennom den innebygde modulen pwd
. En innledende ~user
er slått opp direkte i passordkatalogen.
På Windows, USERPROFILE
vil bli brukt hvis satt, ellers en combinationof HOMEPATH
og HOMEDRIVE
vil bli brukt. En innledende ~user
håndteres ved å fjerne den siste katalogkomponenten fra createduser-banen som er avledet ovenfor.
hvis utvidelsen mislykkes, eller hvis banen ikke begynner med en tilde, er banen uendret.
Endret i versjon 3.6: Godtar et banelignende objekt.
Endret i versjon 3.8: bruker ikke lenger HOME
På Windows.
os.path.
expandvars
(sti)¶
Returner argumentet med miljøvariabler utvidet. Delstrenger av skjemaet$name
eller ${name}
erstattes av verdien for miljøvariablename. Misdannede variabelnavn og referanser til ikke-eksisterende variabler erigjen uendret.
på Windows støttes %name%
utvidelser i tillegg til $name
og${name}
.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
getatime
(sti)¶
Returner tidspunktet for siste tilgang til banen. Returverdien er et flyttall som girantall sekunder siden epoken(se modulen time
). HevOSError
hvis filen ikke finnes eller er utilgjengelig.
os.path.
getmtime
(sti)¶
Returner tidspunktet for siste endring av banen. Returverdien er et flyttallgi antall sekunder siden epoken (se modulen time
).Hev OSError
hvis filen ikke finnes eller er utilgjengelig.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
getctime
(sti)¶
Returner systemets ctime som på noen systemer (Som Unix) er tidspunktet for den siste metadataendringen, og på Andre (Som Windows) er skapelsestiden for sti.Returverdien er et tall som gir antall sekunder siden epoken (seethe time
modul). Hev OSError
hvis filen ikke finnes ellerer utilgjengelig.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
getsize
(sti)¶
Returner størrelsen, i byte, av banen. Hev OSError
hvis filen ikke eksisterer eller er utilgjengelig.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
isabs
(sti)¶
Retur True
hvis banen er et absolutt banenavn. På Unix betyr det detbegynner med en skråstrek, På Windows at Den begynner med en (bak)skråstrek etter å ha hugget av en potensiell stasjonsbokstav.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
isfile
(sti)¶
Returner True
hvis banen er en existing
vanlig fil.Dette følger symbolske lenker, så både islink()
og isfile()
kan være sanne for samme bane.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
isdir
(sti)¶
Retur True
hvis banen er en existing
katalog. Dette følger symbolske lenker, så både islink()
og isdir()
kan være sannefor samme bane.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
islink
(sti)¶
Retur True
hvis stien refererer til en existing
kataloginnføring som er en symbolsk lenke. Alltid False
hvis symbolske lenker ikke støttes av Python runtime.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
ismount
(sti)¶
Retur True
hvis banenavn banen er et monteringspunkt: et punkt i afile system der et annet filsystem er montert. PÅ POSIX kontrollerer funksjonen om banens overordnede, path/..
, er på en annen enhet enn bane, eller om path/..
og sti peker til samei-noden på samme enhet — dette bør oppdage monteringspunkter for Alle Unixand POSIX-varianter. Det er ikke i stand til pålitelig oppdage bind mounts on thesame filsystem. På Windows er en stasjonsbokstav rot og en del UNCALLTID montere poeng, og for en annen sti GetVolumePathName
kallesfor å se om den er forskjellig fra inngangsbanen.
Nytt i versjon 3.4: Støtte for å oppdage ikke-rotmonteringspunkter På Windows.
Endret i versjon 3.6: Godtar en bane-lignende objekt.
os.path.
join
(sti, *stier)¶
Bli med på en eller flere banekomponenter på en intelligent måte. Returverdien er conconcatenation av banen og alle medlemmer av * baner med nøyaktig onedirectory separator (os.sep
) etter hver ikke-tom del unntatt thelast, noe som betyr at resultatet vil bare ende i en separator hvis lastpart er tom. Hvis en komponent er en absolutt bane, alle forrigekomponenter kastes bort og sammenføyning fortsetter fra den absolutte banekomponenten.
på Windows tilbakestilles ikke stasjonsbokstaven når det oppstår en absolutt banekomponent(f.eks. r'\foo'
). Hvis en komponent inneholder en drivbrev, kastes alle tidligere komponenter og stasjonsbokstaven tilbakestilles. Merk at siden det er en gjeldende katalog for hver stasjon, representereros.path.join("c:", "foo")
en bane i forhold til currentdirectory på stasjon C:
(c:foo
), ikke c:\foo
.
Endret i versjon 3.6: Godtar et banelignende objekt for sti og baner.
os.path.
normcase
(sti)¶
Normaliser tilfelle av et banenavn. På Windows konverterer du alle tegn ipathname til små bokstaver, og konverterer også skråstreker til bakover skråstreker.På andre operativsystemer, returner banen uendret.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
normpath
(sti)¶
Normaliser et banenavn ved å kollapse redundante separatorer og opp-nivåreferanser slik at A//B
, A/B/
, A/./B
og A/foo/../B
alle blir A/B
. Denne strengmanipuleringen kan endre betydningen av en stisom inneholder symbolske lenker. På Windows konverterer den fremover skråstreker tilbakover skråstreker. For å normalisere saken, bruk normcase()
.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
realpath
(sti)¶
Returner den kanoniske banen til det angitte filnavnet, eliminere eventuelle symbolske lenker som oppstår i banen (hvis de støttes av operatingsystemet).
Merk
når symbolske lenkesykluser oppstår, vil den returnerte banen være ett medlem av syklusen, men det gis ingen garanti for hvilket medlem det vil være.
Endret i versjon 3.6: Godtar en bane-lignende objekt.
Endret i versjon 3.8: Symbolske lenker og veikryss er nå løst På Windows.
os.path.
relpath
(sti, start=os.curdir)¶
Returner en relativ filbane til banen enten fra gjeldende katalog eller fra en valgfri startkatalog. Dette er en baneberegning: thefilesystem er ikke tilgjengelig for å bekrefte eksistensen eller naturen til path orstart.
start standardinnstillingene til os.curdir
.
Tilgjengelighet: Unix, Windows.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
samefile
(path1, path2)¶
Returner True
hvis begge banenavnargumentene refererer til samme fil eller katalog.Dette bestemmes av enhetsnummeret og i-node-nummeret og hever anexception hvis en os.stat()
samtale på enten banenavn mislykkes.
Tilgjengelighet: Unix, Windows.
Endret i versjon 3.2: Lagt Til Windows-støtte.
Endret i versjon 3.4: Windows bruker nå samme implementering som alle andre plattformer.
Endret i versjon 3.6: Godtar en bane-lignende objekt.
os.path.
sameopenfile
(fp1, fp2)¶
Retur True
hvis filbeskrivelsene fp1 og fp2 refererer til samme fil.
Tilgjengelighet: Unix, Windows.
Endret i versjon 3.2: Lagt Til Windows-støtte.
Endret i versjon 3.6: Godtar en bane-lignende objekt.
os.path.
samestat
(stat1, stat2)¶
Retur True
hvis stat-tuppene stat1 og stat2 refererer til samme fil.Disse strukturene kan ha blitt returnert av os.fstat()
,os.lstat()
eller os.stat()
. Denne funksjonen implementerer sammenligningen som brukes av samefile()
og sameopenfile()
.
Tilgjengelighet: Unix, Windows.
Endret i versjon 3.4: Lagt Til Windows-støtte.
Endret i versjon 3.6: Godtar en bane-lignende objekt.
os.path.
split
(sti)¶
Del banenavnet banen i et par, (head, tail)
hvor halen er den siste banenavnskomponenten og hodet er alt som fører opp til det. Thetail del vil aldri inneholde en skråstrek; hvis banen ender i en skråstrek, tailwill være tom. Hvis det ikke er noen skråstrek i banen, vil hodet være tomt. Hvis stien er tom, er både hode og hale tomme. Etterfølgende skråstreker erstrippet fra hodet med mindre det er roten (bare en eller flere skråstreker). I alle tilfeller returnerer join(head, tail)
en bane til samme sted som bane(men strengene kan variere). Se også funksjonene dirname()
ogbasename()
.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
splitdrive
(sti)¶
Del banenavnet banen i et par (drive, tail)
hvor stasjonen er enten monteringspunkt eller den tomme strengen. På systemer som ikke bruker drivespecifications, vil stasjonen alltid være den tomme strengen. I alle tilfeller vil drive+ tail
være det samme som path.
på Windows deler du et banenavn i disk / UNC sharepoint og relativ bane.
hvis banen inneholder en stasjonsbokstav, vil stasjonen inneholde altopp til og med kolon.eksempelvis. splitdrive("c:/dir")
returnerer("c:", "/dir")
hvis banen inneholder EN unc-bane, vil stasjonen inneholde vertsnavnet og dele, opp til, men ikke inkludert, det fjerde skilletegnet.f. eks splitdrive("//host/computer/dir")
returnerer ("//host/computer", "/dir")
Endret i versjon 3.6: Godtar en bane-lignende objekt.
os.path.
splitext
(sti)¶
Del banenavnet banen i et par (root, ext)
slik at root + ext ==path
, og ext er tom eller begynner med en periode og inneholder høyst en periode. Innledende perioder på basename ignoreres; splitext('.cshrc')
returnerer ('.cshrc', '')
.
Endret i versjon 3.6: Godtar et banelignende objekt.
os.path.
supports_unicode_filenames