källkod:Lib/posixpath.py (för POSIX) andLib/ntpath.py (för Windows NT).
denna modul implementerar några användbara funktioner på sökvägar. För att läsa eller skriva filer seopen()
och för åtkomst till filsystemet se os
modulen. Sökvägsparametrarna kan skickas som antingen strängar eller byte. Program uppmuntras att representera filnamn som (Unicode) teckensträngar. Tyvärr kan vissa filnamn inte varapresenterbara som strängar på Unix, så applikationer som behöver stödbiträra filnamn på Unix bör använda bytes-objekt för att representerasökvägsnamn. Vice versa, att använda bytes-objekt kan inte representera alla filnamn på Windows (i standarden mbcs
kodning), därför bör Windowsapplications använda strängobjekt för att komma åt alla filer.
till skillnad från ett unix-skal gör Python inga automatiska banutvidgningar.Funktioner som expanduser()
och expandvars()
kan invokedexplicit när ETT program önskar shell-liknande väg expansion. (Se ävenmodulen glob
.)
se även
modulen pathlib
erbjuder sökvägsobjekt på hög nivå.
notera
alla dessa funktioner accepterar antingen endast byte eller endast strängobjekt somderas parametrar. Resultatet är ett objekt av samma typ, om en sökväg ellerfilnamn returneras.
Obs!
eftersom olika operativsystem har olika sökvägskonventioner finns det flera versioner av den här modulen i standardbiblioteket. Modulen os.path
är alltid den path-modul som är lämplig för det operativa systemet Python körs på och kan därför användas för lokala sökvägar. Du kan dock också importera och använda de enskilda modulerna om du vill manipuleraen sökväg som alltid finns i ett av de olika formaten. De har alla samma gränssnitt:
-
posixpath
för UNIX-stigar -
ntpath
för Windows-sökvägar
ändrad i version 3.8: exists()
, lexists()
, isdir()
, isfile()
,islink()
, och ismount()
returnerar nu False
istället för atthöja ett undantag för sökvägar som innehåller tecken eller bytesunrepresentable på OS-nivå.
os.path.
abspath
(
returnerar en normaliserad absolutiserad version av sökvägen. På de flesta plattformar motsvarar detta funktionen normpath()
somföljs: normpath(join(os.getcwd(), path))
.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
basename
(
returnerar basnamnet för sökväg sökväg. Detta är det andra elementet iparet returneras genom att passera sökvägen till funktionen split()
. Observera attresultatet av denna funktion är annorlundafrån Unix-basename-programmet; där basnamn för'/foo/bar/'
returnerar 'bar'
, returnerar funktionen basename()
anempty-sträng (''
).
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
commonpath
(
Returnerar den längsta gemensamma undervägen för varje sökväg i sekvensvägarna. Höj ValueError
om sökvägar innehåller både absolutaoch relativa sökvägar är sökvägarna på de olika enheterna eller om sökvägar är tomma. Till skillnad från commonprefix()
returnerar detta avalid-sökväg.
Tillgänglighet: Unix, Windows.
nytt i version 3.5.
ändrad i version 3.6: accepterar en sekvens av sökvägsliknande objekt.
os.path.
commonprefix
(
Returnerar det längsta sökvägsprefixet (taget tecken för tecken) som är aprefix av alla sökvägar i listan. Om listan är tom returnerar du den tomma strängen (''
).
Obs
den här funktionen kan returnera ogiltiga sökvägar eftersom den fungerar acharacter åt gången. För att få en giltig sökväg, secommonpath()
.
>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
dirname
(
returnerar katalognamnet för sökväg sökväg. Detta är det första elementet iparet returneras genom att passera sökvägen till funktionen split()
.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
exists
(
retur True
om sökväg refererar till en befintlig sökväg eller en openfile-deskriptor. Returnerar False
för trasiga symboliska länkar. På vissa plattformar kan den här funktionen returnera False
om tillstånd inte beviljas för att köra os.stat()
på den begärda filen, även om sökvägen fysiskt finns.
ändrad i version 3.3: sökvägen kan nu vara ett heltal: True
returneras om det är en öppen filbeskrivning, False
annars.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
lexists
(
retur True
om sökväg refererar till en befintlig sökväg. Returnerar True
förbrutna symboliska länkar. Motsvarande exists()
på plattformar som saknaros.lstat()
.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
expanduser
(
på Unix och Windows returnerar du argumentet med en initial komponent av ~
eller~user
ersatt av användarens hemkatalog.
på Unix ersätts en initial ~
med miljövariabeln HOME
om den är inställd; annars slås den aktuella användarens hemkatalog upp ilösenordskatalogen via den inbyggda modulen pwd
. En initial ~user
slås upp direkt i lösenordskatalogen.
på Windows kommer USERPROFILE
att användas om det är inställt, annars kommer en kombination av HOMEPATH
och HOMEDRIVE
att användas. En initial~user
hanteras genom att ta bort den sista katalogkomponenten från den skapade användarvägen som härrör ovan.
om expansionen misslyckas eller om Sökvägen inte börjar med en tilde, är sökvägen omvänd oförändrad.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
ändrad i version 3.8: använder inte längre HOME
på Windows.
os.path.
expandvars
(
returnerar argumentet med miljövariabler expanderade. Delsträngar av formen$name
eller ${name}
ersätts med värdet av miljövariablename. Felaktiga variabelnamn och referenser till icke-existerande variabler ärlämnade oförändrade.
på Windows stöds %name%
utvidgningar utöver $name
och${name}
.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
getatime
(
returnerar tiden för senaste åtkomst av sökvägen. Returvärdet är ett flytpunktsnummer som gerantalet sekunder sedan epoken (se modulen time
). HöjOSError
om filen inte finns eller är otillgänglig.
os.path.
getmtime
(
returnerar tiden för den senaste ändringen av sökvägen. Returvärdet är ett flyttal som ger antalet sekunder sedan epoken (se modulen time
).Höj OSError
om filen inte finns eller är otillgänglig.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
getctime
(
returnera systemets ctime som på vissa system (som Unix) är tiden för den senaste metadataändringen, och på andra (som Windows) är skapningstiden för path.Returvärdet är ett tal som anger antalet sekunder sedan epoken (se time
modul). Höj OSError
om filen inte existerar ellerär otillgänglig.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
getsize
(
returnerar storleken, i byte, av sökvägen. Höj OSError
om filen inte existerar eller är otillgänglig.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
isabs
(
returnera True
om sökväg är ett absolut sökväg. På Unix betyder det detbörjar med ett snedstreck, på Windows att det börjar med ett (bakåt)snedstreck efter hackningav en potentiell enhetsbokstav.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
isfile
(7556 > returneraTrue
om sökvägen är enexisting
vanlig fil.Detta följer symboliska länkar, så bådeislink()
ochisfile()
kan vara sant för samma sökväg.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
isdir
(
retur True
om sökvägen är en existing
katalog. Detta följer symboliska länkar, så både islink()
och isdir()
kan vara sannaför samma väg.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
islink
(
retur True
om sökvägen hänvisar till en existing
directoryentry som är en symbolisk länk. Alltid False
om symboliska länkar inte ärstödd av Python runtime.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
ismount
(
retur True
om sökväg sökväg är en monteringspunkt: en punkt i ett filsystem där ett annat filsystem har monterats. På POSIX kontrollerar funktionen om paths överordnade, path/..
, är på en annan enhet än path, eller om path/..
och path pekar på sammaei-nod på samma enhet — Detta bör upptäcka monteringspunkter för alla Unixand POSIX-varianter. Det kan inte på ett tillförlitligt sätt upptäcka bindningsfästen påsamma filsystem. På Windows är en enhetsbokstavsrot och en del UNCALLTID monteringspunkter, och för någon annan sökväg GetVolumePathName
kallasför att se om den skiljer sig från inmatningsvägen.
nytt i version 3.4: stöd för att upptäcka icke-rotmonteringspunkter på Windows.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
join
(Path, * paths)
gå med i en eller flera path-komponenter på ett intelligent sätt. Returvärdet är konkatenering av path och alla medlemmar i * paths med exakt onedirectory separator (os.sep
) som följer varje icke-tom del utom thelast, vilket innebär att resultatet bara slutar i en separator om den sista delen är tom. Om en komponent är en absolut väg, alla tidigarekomponenter kastas bort och sammanfogning fortsätter från den absoluta pathcomponent.
i Windows återställs inte enhetsbokstaven när en absolut sökvägskomponent(t.ex. r'\foo'
) påträffas. Om en komponent innehåller ett drivbrev kastas alla tidigare komponenter bort och drivbrevet återställs. Observera att eftersom det finns en aktuell katalog för varje enhet representeraros.path.join("c:", "foo")
en sökväg i förhållande till currentdirectory på enhet C:
(c:foo
), inte c:\foo
.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt för sökväg och sökvägar.
os.path.
normcase
(7556 > normalisera fallet med en sökväg. På Windows konverterar du alla tecken isökvägsnamn till små bokstäver, och konvertera även framåt snedstreck till bakåtstreck.På andra operativsystem returnerar du sökvägen oförändrad.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
normpath
(7556 > normalisera en sökväg genom att kollapsa redundanta separatorer och upp-nivåreferenser så attA//B
,A/B/
,A/./B
ochA/foo/../B
allbecomeA/B
. Denna strängmanipulation kan ändra betydelsen av en sökvägsom innehåller symboliska länkar. På Windows konverterar den framåt snedstreck tillbackward snedstreck. För att normalisera fallet, användnormcase()
.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
realpath
(
Returnerar den kanoniska sökvägen för det angivna filnamnet, vilket eliminerar eventuella symboliska länkar som påträffas i sökvägen (om de stöds av operationssystemet).
Obs
när symboliska länkcykler inträffar kommer den returnerade sökvägen att vara en medlem av cykeln, men ingen garanti görs om vilken medlem som kommer att vara.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
ändrad i version 3.8: symboliska länkar och korsningar löses nu på Windows.
os.path.
relpath
(sökväg, start=os.curdir)
returnerar en relativ filsökväg till sökväg antingen från den aktuella katalogen eller från en valfri startkatalog. Detta är en vägberäkning: filsystemet är inte tillgängligt för att bekräfta förekomsten eller arten av path orstart.
start är som standard os.curdir
.
Tillgänglighet: Unix, Windows.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
samefile
(path1, path2)
return True
om båda sökvägsargumenten hänvisar till samma fil eller katalog.Detta bestäms av enhetsnumret och i-nodnumret och höjer anexception om ett os.stat()
– samtal på något av sökvägarna misslyckas.
Tillgänglighet: Unix, Windows.
ändrad i version 3.2: lagt till Windows-stöd.
ändrad i version 3.4: Windows använder nu samma implementering som alla andra plattformar.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
sameopenfile
(fp1, fp2)
retur True
om filbeskrivarna FP1 och fp2 hänvisar till samma fil.
Tillgänglighet: Unix, Windows.
ändrad i version 3.2: lagt till Windows-stöd.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
samestat
(stat1, stat2) 0556
retur True
om stat tuples stat1 och stat2 hänvisar till samma fil.Dessa strukturer kan ha returnerats av os.fstat()
,os.lstat()
eller os.stat()
. Denna funktion implementerarunderliggande jämförelse som används av samefile()
och sameopenfile()
.
Tillgänglighet: Unix, Windows.
ändrad i version 3.4: tillagd Windows-stöd.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
split
(
dela sökvägsvägen i ett par, (head, tail)
där svansen är den senaste sökvägskomponenten och huvudet är allt som leder fram till det. Svansdelen kommer aldrig att innehålla ett snedstreck; om vägen slutar i ett snedstreck, kommer svansen att vara tom. Om det inte finns något snedstreck i vägen kommer huvudet att vara tomt. Ifpath är tom, både huvud och svans är tomma. Släpande snedstreck arestripped från huvudet om det inte är roten (en eller flera snedstreck endast). I alla fall returnerar join(head, tail)
en sökväg till samma plats som sökväg(men strängarna kan skilja sig åt). Se även funktionerna dirname()
ochbasename()
.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
splitdrive
(
dela sökvägsvägen i ett par (drive, tail)
där enheten antingen är monteringspunkt eller den tomma strängen. På system som inte använder drivespecifications kommer drive alltid att vara den tomma strängen. I alla fall kommer drive+ tail
att vara samma som path.
i Windows delar du upp ett sökväg i drive / UNC sharepoint och relativ sökväg.
om sökvägen innehåller en enhetsbokstav, kommer enheten att innehålla alltupp till och med kolon.ex. splitdrive("c:/dir")
returnerar("c:", "/dir")
om sökvägen innehåller en UNC-sökväg kommer drive att innehålla värdnamnoch dela, upp till men inte den fjärde separatorn.t. ex. splitdrive("//host/computer/dir")
returnerar ("//host/computer", "/dir")
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
splitext
(
dela sökvägen sökvägen i ett par (root, ext)
så att root + ext ==path
, och ext är tom eller börjar med en period och innehåller högst enperiod. Inledande perioder på basnamnet ignoreras; splitext('.cshrc')
returnerar ('.cshrc', '')
.
ändrad i version 3.6: accepterar ett sökvägsliknande objekt.
os.path.
supports_unicode_filenames