Zdrojový kód: Lib/posixpath.py (pro POSIX) andLib/ntpath.py (pro Windows NT).
Tento modul implementuje některé užitečné funkce na cesty. Číst a psát soubory viz open()
, a pro přístup na souborový systém vizos
modul. Parametry cesty mohou být předány buď jako řetězce, nebo bajty. Aplikace se vyzývají, aby reprezentovat názvy souborů jako (Unicode) řetězce znaků. Bohužel, některé názvy souborů nemusí být reprezentativní jako řetězce v Unixu, takže aplikace, které potřebují podporovat názvy souborů v UNIXu, by měly používat objekty bytes k reprezentaci názvů cest. Naopak, použití bajtů objekty nemohou reprezentovat všechny názvy souborů v systému Windows (ve standardním kódování mbcs
), proto Windowsapplications by měly používat řetězcové objekty pro přístup ke všem souborům.
na rozdíl od unixového shellu Python neprovádí žádné automatické rozšíření cesty.Funkce jako expanduser()
a expandvars()
mohou být vyvolány implicitně, když aplikace požaduje rozšíření cesty podobné shellu. (Viz také modul glob
.)
Viz také
modul pathlib
nabízí objekty cesty na vysoké úrovni.
Poznámka
všechny tyto funkce přijímají buď pouze bajty, nebo pouze řetězcové objekty jako jejich parametry. Výsledkem je objekt stejného typu, pokud je cesta nebonázev souboru je vrácen.
Poznámka:
Protože různé operační systémy mají různé název cesty konvence, existuje několik verzí tohoto modulu standardní knihovny. Modulos.path
je vždy cesta modul vhodný pro operatingsystem Python běží na, a proto použitelný pro místní cesty. Můžete však také importovat a používat jednotlivé moduly, pokud chcete manipulovatcesta, která je vždy v jednom z různých formátů. Všechny mají stejné rozhraní:
-
posixpath
pro UNIX-styl cesty -
ntpath
pro Windows cest
Změnilo ve verzi 3.8: exists()
, lexists()
, isdir()
, isfile()
,islink()
, a ismount()
vrátit False
místo ofraising výjimku pro cesty, které obsahují znaky nebo bytesunrepresentable na úrovni OS.
os.path.
abspath
(path) vrátí normalizovanou absolutizovanou verzi cesty pathname. Na většině platforms to odpovídá volání funkcenormpath()
asfollows:normpath(join(os.getcwd(), path))
.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
basename
(path)¶
vrátí základní název cesty pathname. Toto je druhý prvekpár vrácený předáním cesty k funkci split()
. Všimněte si, ževýsledek této funkce je jinýz unixového programu basename; kde basename pro'/foo/bar/'
vrací 'bar'
, funkce basename()
vrací prázdný řetězec (''
).
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
commonpath
(cesty) vrátí nejdelší společnou dílčí cestu každého názvu cesty v sekvencepaths. RaiseValueError
pokud cesty obsahují absolutní a relativní názvy cest, cesty jsou na různých jednotkách nebo cesty jsou prázdné. Na rozdíl odcommonprefix()
vrací avalid cestu.
Dostupnost: Unix, Windows.
novinka ve verzi 3.5.
změněno ve verzi 3.6: přijímá posloupnost objektů podobných cestě.
os.path.
commonprefix
(seznam) vrátí nejdelší předponu cesty (převzatou znak po znaku), která je aprefixem všech cest v seznamu. Pokud je seznam prázdný, vraťte prázdný řetězec (''
).
Poznámka
Tato funkce může vrátit neplatné cesty, protože funguje acharacter najednou. Chcete – li získat platnou cestu, vizcommonpath()
.
>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'
Změnilo ve verzi 3.6: Přijímá cestu-jako objekt.
os.path.
dirname
(path)¶
vrátí název adresáře pathname path. Toto je první prvek páru vrácený předáním cesty k funkci split()
.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
exists
(path) návratTrue
pokud cesta odkazuje na existující cestu nebo deskriptor openfile. VracíFalse
pro nefunkční symbolické odkazy. Na některých platformách může tato funkce vrátitFalse
, pokud není uděleno oprávnění k provedeníos.stat()
v požadovaném souboru, i když cesta fyzicky existuje.
změněno ve verzi 3.3: cesta může být nyní celé číslo: True
je vrácena, pokud se jedná o otevřený deskriptor souboru, False
jinak.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
lexists
(cesta)¶
Návrat True
pokud cesta odkazuje na existující cestu. Vrací True
prorozbité symbolické odkazy. Ekvivalentní exists()
na platformách chybíos.lstat()
.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
expanduser
(cesta)¶
Na Unix a Windows, vrátí argument s počátečním prvkem ~
nebo~user
nahrazuje tím, že je domovský adresář uživatele.
Na Unix, počáteční ~
je nahrazen proměnnou prostředí HOME
pokud je nastavena, jinak se stávající domovský adresář uživatele se vzhlédl v thepassword adresáře prostřednictvím vestavěného modulu pwd
. Počáteční ~user
se vyhledá přímo v adresáři hesel.
v systému Windows bude použito USERPROFILE
, pokud je nastaveno, jinak bude použita kombinace HOMEPATH
a HOMEDRIVE
. Počáteční~user
je zpracováno odstraněním poslední složky adresáře z cesty createduser odvozené výše.
pokud expanze selže nebo pokud cesta nezačne vlnovkou, cesta se změní beze změny.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
změněno ve verzi 3.8: V systému Windows již nepoužívá HOME
.
os.path.
expandvars
(cesta)¶
vrátí argument s rozšířenými proměnnými prostředí. Podřetězce tvaru$name
nebo ${name}
jsou nahrazeny hodnotou variablename prostředí. Nesprávné názvy proměnných a odkazy na neexistující proměnné jsou nezměněny.
v systému Windows jsou kromě $name
a ${name}
podporovány rozšíření%name%
.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
getatime
(cesta)¶
vrátí čas posledního přístupu k cestě. Návratová hodnota je číslo s plovoucí desetinnou čárkoupočet sekund od epochy (viz modul time
). ZvýšitOSError
, pokud soubor neexistuje nebo je nepřístupný.
os.path.
getmtime
(cesta)¶
vrátí čas poslední úpravy cesty. Návratová hodnota je číslo s plovoucí desetinnou čárkou, které udává počet sekund od epochy (viz modul time
).Zvýšit OSError
, pokud soubor neexistuje nebo je nepřístupný.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
getctime
(cesta)¶
Vrátit systém je ctime, který na některých systémech (like Unix), je čas na poslední změnu metadat, a na ostatní (jako Windows), je vytvoření čas na cestu.Návratová hodnota je číslo udávající počet sekund od epochy (viz time
modul). Zvýšit OSError
, pokud soubor neexistuje neboje nepřístupný.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
getsize
(cesta) vrátí velikost cesty v bajtech. ZvýšitOSError
, pokud soubor neexistujeneexistuje nebo je nepřístupný.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
isabs
(cesta)¶
návrat True
pokud cesta je absolutní cesta. V Unixu to znamená, že začíná lomítkem, ve Windows začíná lomítkem (zpět)po sekání potenciálního písmene jednotky.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
isfile
(cesta)¶
Návrat True
pokud cesta je existing
běžný soubor.Následuje symbolické odkazy, takže jak islink()
, tak isfile()
mohou být pravdivé pro stejnou cestu.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
isdir
(cesta)¶
návrat True
pokud cesta je adresář existing
. Toto sleduje symbolické odkazy, takže pro stejnou cestu mohou být pravdivé jak islink()
, tak isdir()
.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
islink
(cesta)¶
Návrat True
pokud cesta odkazuje na existing
directoryentry, že je to symbolický odkaz. Vždy False
, pokud symbolické odkazy nejsoupodporované během Python.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
ismount
(cesta)¶
Návrat True
pokud cesta cesta je přípojný bod: bod, v soubor systému, kde různé souborový systém byl připojen. Na POSIX, funkce zkontroluje, zda cesta je rodič, path/..
, je na differentdevice než cesta, nebo zda path/..
a cesty bod na samei-uzel na stejném zařízení — to by mělo odhalit přípojné body pro všechny Unixand POSIX variant. Není schopen spolehlivě detekovat vázací úchyty na stejnémstejný souborový systém. Na Windows písmeno jednotky kořen a sdílet UNC arealways přípojné body, a pro jinou cestu GetVolumePathName
je calledto vidět, pokud se liší od vstupní cesty.
novinka ve verzi 3.4: podpora pro detekci nekořenových přípojných bodů v systému Windows.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
join
(cesta, * cesty) inteligentně připojte jednu nebo více komponent cesty. Návratová hodnota je theconcatenation cesty a členy *cesty s přesně onedirectory oddělovač (os.sep
) po každém non-prázdnou část, s výjimkou poslední, což znamená, že výsledek skončí pouze oddělovač, pokud lastpart je prázdný. Pokud je komponenta absolutní cestou, všechny předchozíkomponenty jsou odhozeny a spojení pokračuje z absolutní pathcomponent.
v systému Windows se písmeno jednotky nevynuluje, pokud se vyskytne komponenta absolutní cesty(např. r'\foo'
). Pokud komponenta obsahuje driveletter, všechny předchozí komponenty jsou odhozeny a písmeno jednotky isreset. Všimněte si, že protože pro každou jednotku existuje aktuální adresář,os.path.join("c:", "foo")
představuje cestu vzhledem k currentdirectory na jednotce C:
(c:foo
), nikoli c:\foo
.
změněno ve verzi 3.6: přijímá objekt podobný cestě pro cestu a cesty.
os.path.
normcase
(path) normalizujte případ názvu cesty. V systému Windows převeďte všechny znaky v souborunázev pathname na malá písmena a také převést lomítka vpřed na lomítka zpět.V jiných operačních systémech vraťte cestu beze změny.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
normpath
(cesta)¶
Normalizovat pathname redukcí nadbytečné oddělovače a up-levelreferences tak, že A//B
, A/B/
, A/./B
a A/foo/../B
allbecome A/B
. Tato manipulace s řetězci může změnit význam cesty, která obsahuje symbolické odkazy. V systému Windows převádí lomítka dopředné lomítka. Pro normalizaci případu použijte normcase()
.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
realpath
(cesta)¶
Návrat kanonická cesta specifikována názvem, eliminuje jakékoliv symboliclinks setkal v cestě (pokud jsou podporovány operatingsystem).
Poznámka
pokud dojde k symbolickým cyklům propojení, bude vrácená cesta jedním členem cyklu, ale není zaručeno, který člen bude.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
změněno ve verzi 3.8: symbolické odkazy a křižovatky jsou nyní vyřešeny v systému Windows.
os.path.
relpath
(cesta, start=os.curdir) vrátí relativní souborovou cestu na cestu buď z aktuálního adresáře, nebo z volitelného start adresáře. Toto je výpočet cesty: filesystém není přístupný k potvrzení existence nebo povahy cesty orstart.
start výchozí os.curdir
.
Dostupnost: Unix, Windows.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
samefile
( , cesta2)¶
Návrat True
pokud oba pathname argumenty odkazují na stejný soubor nebo adresář.To je určeno číslem zařízení a číslem i-uzlu a vyvolává anexception, pokud selže volání os.stat()
na kterékoli cestě.
Dostupnost: Unix, Windows.
změněno ve verzi 3.2: přidána podpora systému Windows.
změněno ve verzi 3.4: Windows nyní používá stejnou implementaci jako všechny ostatní platformy.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
sameopenfile
(fp1, fp2) návratTrue
pokud deskriptory souborů fp1 a fp2 odkazují na stejný soubor.
Dostupnost: Unix, Windows.
změněno ve verzi 3.2: přidána podpora systému Windows.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
samestat
(stat1, stat2)¶
Návrat True
pokud stat n-tic stat1 a stat2 odkazovat na stejný soubor.Tyto struktury mohly být vráceny os.fstat()
,os.lstat()
nebo os.stat()
. Tato funkce implementuje srovnání, které používá samefile()
a sameopenfile()
.
Dostupnost: Unix, Windows.
změněno ve verzi 3.4: Přidána podpora systému Windows.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
split
(path) rozdělte cestu pathname na pár,(head, tail)
kde tail je poslední komponenta pathname a head je vše, co k tomu vede. Ocasní část nikdy nebude obsahovat lomítko; pokud cesta končí lomítkem, ocas bude prázdný. Pokud v cestě není žádné lomítko, hlava bude prázdná. Pokud je cesta prázdná, hlava i ocas jsou prázdné. Trailing lomítka arestriped from head, pokud to není kořen (pouze jeden nebo více lomítek). Ve všech případechjoin(head, tail)
vrátí cestu na stejné místo jako cesta (ale řetězce se mohou lišit). Viz také funkcedirname()
abasename()
.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
splitdrive
(path) rozdělte cestu na pár(drive, tail)
, kde je jednotka buď připojovacím bodem nebo prázdným řetězcem. V systémech, které nepoužívají specifikaci jednotky, bude disk vždy prázdný řetězec. Ve všech případech budedrive+ tail
stejná jako cesta.
v systému Windows rozděluje cestu na jednotku / UNC sharepoint a relativní cestu.
pokud cesta obsahuje písmeno jednotky, jednotka bude obsahovat všechnoaž do dvojtečky.jako. splitdrive("c:/dir")
vrací ("c:", "/dir")
pokud cesta obsahuje cestu UNC, jednotka bude obsahovat název hostitele a podíl, až do čtvrtého oddělovače, ale bez něj.např. splitdrive("//host/computer/dir")
vrací ("//host/computer", "/dir")
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
splitext
(cesta)¶
Rozdělit cesta cesta do dvojice (root, ext)
takové, že root + ext ==path
a ext je prázdný, nebo začíná období a obsahuje nejvíce oneperiod. Počáteční periody na základním jméně jsou ignorovány; splitext('.cshrc')
vrací ('.cshrc', '')
.
změněno ve verzi 3.6: přijímá objekt podobný cestě.
os.path.
supports_unicode_filenames