forráskód: Lib/posixpath.py (POSIX esetében) andLib/ntpath.py (Windows NT esetén).
ez a modul néhány hasznos funkciót valósít meg a pathnames-en. Az orwrite fájlok olvasásához lásd a open()
, a fájlrendszer eléréséhez pedig aos
modult. Az elérési út paraméterei karakterláncként vagy bájtként adhatók át. Az alkalmazások arra ösztönzik, hogy képviselje fájlnevek (Unicode) karakterláncok. Sajnos előfordulhat, hogy egyes fájlnevek nem jelennek meg karakterláncként a Unix-on, ezért azoknak az alkalmazásoknak, amelyeknek támogatniuk kell az önkényes fájlneveket a Unix-on, bájtobjektumokat kell használniuk az útvonalnevek ábrázolásához. Fordítva, a bájtobjektumok használata nem reprezentálhatja az összes fájlnevet a Windows rendszeren (a szabványos mbcs
kódolásban), ezért a Windowsalkalmazásoknak string objektumokat kell használniuk az összes fájl eléréséhez.
a Unix shell-től eltérően a Python nem végez automatikus útvonalbővítést.Az olyan függvények, mint a expanduser()
és expandvars()
implicit módon meghívhatók, ha egy alkalmazás shell-szerű elérési utat kíván bővíteni. (Lásd még: glob
modul.)
Lásd még:
a pathlib
modul magas szintű elérési útvonalakat kínál.
Megjegyzés:
ezek a függvények csak bájtokat vagy csak karakterlánc-objektumokat fogadnak el, mint azok paramétereit. Az eredmény egy azonos típusú objektum, ha EGY elérési út vagyfájl nevét adja vissza.
Megjegyzés:
mivel a különböző operációs rendszerek eltérő útvonalnév-konvenciókkal rendelkeznek, ennek a modulnak több verziója van a standard könyvtárban. A os.path
modul mindig az a path modul, amely alkalmas arra az operációs rendszerre, amelyen a Python fut, ezért használható helyi útvonalakhoz. Ugyanakkor importálhatja és használhatja az egyes modulokat is, ha manipulálni kívánjaegy olyan elérési utat, amely mindig a különböző formátumok egyikében van. Mindannyian thesame felület:
-
posixpath
UNIX-stílusú útvonalakhoz -
ntpath
Windows útvonalak esetén
megváltozott a 3.8-as verzióban: exists()
, lexists()
, isdir()
, isfile()
,islink()
, és a ismount()
most visszaadja a False
helyettkivétel létrehozása olyan útvonalakra, amelyek karaktereket vagy bájtokat tartalmaznakaz operációs rendszer szintjén nem ábrázolható.
os.path.
abspath
(path) (
a pathname path normalizált abszolutizált változatát adja vissza. A legtöbbplatformon ez egyenértékű a normpath()
függvény meghívásával, amint következik: normpath(join(os.getcwd(), path))
.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
basename
(path) (
visszaadja a pathname path alapnevét. Ez a második eleme apair által visszaadott halad utat a funkció split()
. Ne feledje, hogy ennek a függvénynek az eredménye eltér a Unix alapnév programtól; ahol a '/foo/bar/'
alapnév 'bar'
értéket ad vissza, az basename()
függvény anempty stringet ad vissza (''
).
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
commonpath
(paths) (
a sequencepaths-ben szereplő összes pathname leghosszabb közös alútvonalát adja vissza. Raise ValueError
ha az elérési utak Tartalmazzák mind az abszolút, mind a relatív elérési utakat, akkor az útvonalak a különböző meghajtókon vannak, vagy az elérési utak üresek. Ellentétben commonprefix()
, ez visszatér avalid utat.
Elérhetőség: Unix, Windows.
új verzió 3.5.
a 3.6-os verzióban megváltozott: elfogadja az útvonal-szerű objektumok sorozatát.
os.path.
commonprefix
(lista) (
a leghosszabb elérési út előtagot adja vissza (karakterenként), amely a listában szereplő összes útvonal aprefixje. Ha a lista üres, adja vissza az üres karakterláncot (''
).
Megjegyzés
ez a függvény érvénytelen útvonalakat adhat vissza, mert egyszerre működik. Érvényes elérési út megszerzéséhez lásd:commonpath()
.
>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'
megváltozott a 3.6-os verzió: elfogadja a path-szerű objektumot.
os.path.
dirname
(path) (
visszaadja a pathname path könyvtár nevét. Ez az első Elema pár a split()
függvény elérési útjának átadásával tér vissza.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
exists
(path) (
return True
ha a path egy létező path-ra vagy egy openfile leíróra utal. False
értéket ad vissza törött szimbolikus linkekre. Egyes platformokon ez a függvény visszatérhet False
ha nincs engedély a os.stat()
végrehajtására a kért fájlon, még akkor is, ha az elérési út fizikailag létezik.
megváltozott Verzió 3.3: path most egy egész szám: True
vissza, ha ez egy nyitott fájl leíró, False
egyébként.
megváltozott a 3.6-os verzió: elfogadja a path-szerű objektumot.
os.path.
lexists
(path), ha a path egy létező path-ra vonatkozik, akkor
Return True
. Visszaadja True
forbroken szimbolikus linkek. exists()
– nek felel meg aos.lstat()
nélküli platformokon.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
expanduser
(
UNIX és Windows esetén adja vissza az argumentumot a ~
vagy~user
kezdeti összetevővel, amelyet a felhasználó saját könyvtára helyettesít.
Unix esetén az ~
kezdőbetűt a HOME
környezeti változó váltja fel, ha be van állítva; különben az aktuális felhasználó saját könyvtárát a beépített modulon keresztül keresi fel a jelszó könyvtár. pwd
. A ~user
kezdőbetű közvetlenül a jelszókönyvtárban található.
Windows rendszeren a USERPROFILE
lesz használva, ha be van állítva, különben a HOMEPATH
és HOMEDRIVE
kombinációja lesz használva. A~user
kezdőbetűt úgy kezeljük, hogy az utolsó könyvtárösszetevőt eltávolítjuk a fent levezetett createduser elérési útról.
ha a bővítés sikertelen, vagy ha az útvonal nem tildével kezdődik, az útvonal változatlan marad.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
megváltozott a 3.8-as verzióban: már nem használja a HOME
– ot Windows rendszeren.
os.path.
expandvars
(elérési út) (
az argumentumot bővített környezeti változókkal adja vissza. A$name
vagy ${name}
formátumú részstringeket a környezeti változónév értéke váltja fel. A hibás változónevek és a nem létező változókra való hivatkozások változatlanok maradnak.
Windows rendszeren a %name%
bővítmények a $name
és a${name}
mellett támogatottak.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
getatime
(path) (
visszaadja az elérési út utolsó elérésének idejét. A visszatérési érték egy lebegőpontos számaz epoch óta eltelt másodpercek száma (lásd a time
modult). RaiseOSError
ha a fájl nem létezik, vagy nem érhető el.
os.path.
getmtime
(path) (
a path utolsó módosításának idejét adja vissza. A visszatérési érték lebegőpontos számaz epoch óta eltelt másodpercek számát (lásd a time
modult).Raise OSError
ha a fájl nem létezik, vagy nem érhető el.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
getctime
(elérési út) (
visszaadja a rendszer ctime-jét, amely egyes rendszereken (például Unix) az utolsó metaadat-változás ideje, másokon (például Windows) pedig az elérési út létrehozásának ideje.A visszatérési érték egy szám, amely megadja az epoch óta eltelt másodpercek számát (lásd time
modul). Raise OSError
ha a fájl nem létezik, vagyelérhetetlen.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
getsize
(path) (
a path méretét adja vissza bájtban. Raise OSError
ha a fájl nem létezik, vagy nem érhető el.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
isabs
(elérési út), ha az elérési út abszolút elérési útnév, akkor
visszatérés True
. Unix-on ez azt jelenti, hogy perjellel kezdődik, Windows-On pedig egy (hátsó)perjellel kezdődik, miután levágta a lehetséges meghajtóbetűjelet.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
isfile
(elérési út), ha az elérési út
visszaadja a True
fájlt, ha az elérési út existing
normál fájl.Ez szimbolikus linkeket követ, így mind a islink()
, mind a isfile()
ugyanarra az útvonalra igaz lehet.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
isdir
(elérési út), ha az elérési út
vissza True
könyvtár existing
. Ez szimbolikus hivatkozásokat követ, így mind a islink()
, mind a isdir()
igaz lehet ugyanazon az úton.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
islink
(elérési út) (
return True
ha az elérési út egy existing
könyvtárbejegyzésre utal, amely szimbolikus link. Mindig False
ha a szimbolikus linkek nema Python futásidejű támogatja.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
ismount
(Path) (
return True
ha pathname path egy csatolási pont: egy pont afile rendszer, ahol egy másik fájlrendszer van csatolva. POSIX-On a funkció ellenőrzi, hogy a path szülője, a path/..
egy másik eszközön van-e, mint a path, vagy a path/..
és a path ugyanarra a csomópontra mutat — e ugyanazon az eszközön-ez felismeri a csatolási pontokat az összes UNIX és POSIX változatnál. Nem képes megbízhatóan felismerni a kötési csatolásokat ugyanazon a fájlrendszeren. Windows rendszeren a root és a share UNC meghajtóbetűjel mindig csatolási pontokat tartalmaz, és minden más GetVolumePathName
elérési út esetén meg kell hívni, hogy eltér-e a bemeneti útvonaltól.
új a 3.4-es verzióban: támogatás a nem gyökér csatlakozási pontok észleléséhez a Windows rendszeren.
megváltozott a 3.6-os verzió: elfogadja a path-szerű objektumot.
os.path.
join
(Path, *paths) (
okosan csatlakoztasson egy vagy több útösszetevőt. A visszatérési érték a path és a *paths bármely tagja, amely pontosan egy könyvtár elválasztóval (os.sep
) követi az egyes nem üres részeket, kivéve az utolsót, ami azt jelenti, hogy az eredmény csak akkor ér véget elválasztóban, ha az utolsó rész üres. Ha egy összetevő abszolút elérési út, akkor az összes előző komponenst eldobja, és az összekapcsolás az abszolút elérési útból folytatódik.
Windows rendszeren a meghajtó betűjele nem áll vissza, ha egy abszolút elérési út összetevő(például r'\foo'
) jelenik meg. Ha egy összetevő meghajtólevelet tartalmaz, a rendszer az összes korábbi összetevőt eldobja, és a meghajtó betűjelét visszaállítja. Ne feledje, hogy mivel minden meghajtóhoz van egy aktuális könyvtár, aos.path.join("c:", "foo")
a C:
(c:foo
) meghajtón lévő currentdirectory elérési útját képviseli, nem pedig a c:\foo
.
megváltozott a 3.6-os verzióban: elfogadja a path-szerű objektumot a path and paths számára.
os.path.
normcase
(path) (
egy pathname esetének normalizálása. Windows rendszeren konvertálja a thepathname összes karakterét kisbetűkké,valamint az előre mutató perjeleket visszafelé mutató perjelekké.Más operációs rendszereken az elérési utat változatlanul adja vissza.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
normpath
(elérési út) (
normalizálja az elérési út nevét redundáns elválasztók és fel-levelreferenciák összecsukásával, hogy A//B
, A/B/
, A/./B
és A/foo/../B
allbecome A/B
. Ez a karakterlánc-manipuláció megváltoztathatja egy szimbolikus linkeket tartalmazó útvonal jelentését. A Windows, átalakítja előre perjelekhátra perjel. Az eset normalizálásához használja normcase()
.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
realpath
(path) (
visszaadja a megadott fájlnév kanonikus elérési útját, kiküszöbölve az elérési útvonalon található szimbolikus linkeket (ha azokat az operatingsystem támogatja).
Megjegyzés
szimbolikus linkciklusok esetén a visszaadott útvonal a ciklus egyik tagja lesz, de nincs garancia arra, hogy melyik tag lesz.
megváltozott a 3.6-os verzió: elfogadja a path-szerű objektumot.
megváltozott a 3.8-as verzió: szimbolikus linkek és csomópontok már megoldódott a Windows.
os.path.
relpath
(útvonal, start = os.curdir) (
relatív fájlútvonalat ad vissza az aktuális könyvtárból vagy egy opcionális kezdő könyvtárból. Ez egy út számítás: thefilesystem nem érhető el, hogy erősítse meg a létezését vagy jellegét path orstart.
a start alapértelmezett értéke os.curdir
.
Elérhetőség: Unix, Windows.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
samefile
(path1, path2) ha mindkét pathname argumentum ugyanahhoz a fájlhoz vagy könyvtárhoz tartozik, akkor a
érték True
értéket ad vissza.Ezt az eszköz száma és az i-csomópont száma határozza meg, és anexceptiont emel, ha valamelyik elérési út os.stat()
hívása sikertelen.
Elérhetőség: Unix, Windows.
megváltozott a 3.2-es verzióban: Hozzáadott Windows támogatás.
a 3.4-es verzióban megváltozott: a Windows most ugyanazt a megvalósítást használja, mint az összes többi platform.
megváltozott a 3.6-os verzió: elfogadja a path-szerű objektumot.
os.path.
sameopenfile
((FP1, fp2) a
visszaadja a True
értéket, ha az FP1 és fp2 fájlleírók ugyanarra a fájlra vonatkoznak.
Elérhetőség: Unix, Windows.
megváltozott a 3.2-es verzióban: Hozzáadott Windows támogatás.
megváltozott a 3.6-os verzió: elfogadja a path-szerű objektumot.
os.path.
samestat
(stat1, stat2) a
(True
érték Akkor tér vissza, ha a stat1 és stat2 statcsúcsok ugyanahhoz a fájlhoz tartoznak.Ezeket a struktúrákat os.fstat()
,os.lstat()
vagy os.stat()
adhatta vissza. Ez a függvény a samefile()
és sameopenfile()
által használt alárendelt összehasonlítást valósítja meg.
Elérhetőség: Unix, Windows.
megváltozott a 3.4-es verzióban: Hozzáadott Windows támogatás.
megváltozott a 3.6-os verzió: elfogadja a path-szerű objektumot.
os.path.
split
(path) (
a pathname path-ot egy párra osztjuk, (head, tail)
ahol a tail az utolsó pathname összetevő, a head pedig minden, ami ehhez vezet. A farok rész soha nem tartalmaz perjelet; ha az út perjelben végződik, a farok üres lesz. Ha nincs perjel a path, fej üres lesz. Ha az ösvény üres, akkor a fej és a farok is üres. A záró perjeleket a fejről csíkolják, kivéve, ha ez a gyökér (csak egy vagy több perjel). Minden esetben a join(head, tail)
egy elérési utat ad vissza ugyanarra a helyre, mint az elérési út(de a karakterláncok eltérhetnek). Lásd még a dirname()
ésbasename()
funkciókat.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
splitdrive
(elérési út) (
az elérési út elérési útjának felosztása (drive, tail)
párra, ahol a meghajtó vagy a csatolási pont, vagy az üres karakterlánc. Azokon a rendszereken, amelyek nem használják a drivespecifikációkat, a drive mindig az üres karakterlánc lesz. Minden esetben a drive+ tail
ugyanaz lesz, mint a path.
Windows rendszeren osztja az elérési utat a drive/UNC sharepoint és a relatív elérési utat.
ha az elérési út meghajtó betűjelet tartalmaz, a meghajtó mindent tartalmaz a kettősponttal együtt.pl. splitdrive("c:/dir")
visszaadja ("c:", "/dir")
ha az elérési út UNC elérési utat tartalmaz, a meghajtó tartalmazza a gazdagép nevét és megosztását, a negyedik elválasztóig, de nem beleértve.pl. splitdrive("//host/computer/dir")
visszatér ("//host/computer", "/dir")
megváltozott a 3.6-os verzió: elfogadja a path-szerű objektumot.
os.path.
splitext
(Path) (
a pathname path egy (root, ext)
párra osztható úgy, hogy root + ext ==path
, és az ext üres vagy ponttal kezdődik, és legfeljebb egyperiodot tartalmaz. Az alapnév vezető periódusai figyelmen kívül maradnak; a splitext('.cshrc')
értéke ('.cshrc', '')
.
megváltozott a 3.6-os verzióban: Elfogad egy útvonal-szerű objektumot.
os.path.
supports_unicode_filenames