os.pad – gemeenschappelijke padnaam manipulaties¶

broncode: Lib/posixpath.py (voor POSIX) andLib/ntpath.py (Voor Windows NT).

deze module implementeert enkele nuttige functies op padnamen. Voor het lezen van orwrite bestanden zie open(), en voor toegang tot het bestandssysteem zie deos module. De path parameters kunnen worden doorgegeven als strings, of bytes. Toepassingen worden aangemoedigd om bestandsnamen weer te geven als(Unicode) tekenreeksen. Helaas kunnen sommige bestandsnamen niet als tekenreeksen op Unix worden weergegeven, dus toepassingen die willekeurige bestandsnamen op Unix moeten ondersteunen, moeten bytes-objecten gebruiken om Path-namen weer te geven. Omgekeerd kan het gebruik van bytes-objecten niet alle bestandsnamen op Windows vertegenwoordigen( in de standaard mbcs – codering), vandaar dat Windowsapplicaties string-objecten moeten gebruiken om toegang te krijgen tot alle bestanden.

in tegenstelling tot een Unix shell, voert Python geen automatische paduitbreidingen uit.Functies zoals expanduser() en expandvars() kunnen expliciet worden ingeroepen wanneer een toepassing een shell-achtige paduitbreiding wenst. (Zie ook de glob module.)

zie ook

de module pathlib biedt padobjecten op hoog niveau.

Noot

al deze functies accepteren alleen bytes of alleen stringobjecten als hun parameters. Het resultaat is een object van hetzelfde type, als een pad of bestandsnaam wordt geretourneerd.

opmerking

omdat verschillende besturingssystemen verschillende padnaam conventies hebben, zijn er verschillende versies van deze module in de standaardbibliotheek. Deos.path module is altijd de padmodule die geschikt is voor het besturingssysteem waarop Python draait, en dus bruikbaar is voor lokale paden. U kunt echter ook de afzonderlijke modules importeren en gebruiken als u een pad wilt manipuleren dat altijd in een van de verschillende formaten is. Ze hebben allemaal dezelfde interface:

  • posixpath voor UNIX-stijl paden

  • ntpath Voor Windows-paden

gewijzigd in versie 3.8: exists(), lexists(), isdir(), isfile(),islink(), en ismount() geef nu False terug in plaats van een uitzondering te maken voor paden die tekens of bytes bevatten die op OS-niveau niet kunnen worden weergegeven.

os.path.abspath(path)¶

Geef een genormaliseerde versie van het padnaam pad terug. Op de meeste platforms is dit gelijk aan het aanroepen van de functie normpath() als volgt: normpath(join(os.getcwd(), path)).

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.basename(path)¶

Geef de basisnaam van pathname path terug. Dit is het tweede element van de pair dat wordt geretourneerd door het pad naar de functie split()door te geven. Merk op dat het resultaat van deze functie verschilt van het Unix basename programma; waar basename voor'/foo/bar/' 'bar' geeft, geeft de functie basename() een lege tekenreeks ('') terug.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.commonpath(paden)¶

geeft het langste gemeenschappelijke subpad van elke padnaam in de sequencepaths terug. Verhoog ValueError als paden zowel absolute als relatieve padnamen bevatten, staan de paden op de verschillende stations of zijn paden leeg. In tegenstelling tot commonprefix() geeft dit avalid pad terug.

Beschikbaarheid: Unix, Windows.

nieuw in versie 3.5.

gewijzigd in versie 3.6: accepteert een reeks pad-achtige objecten.

os.path.commonprefix(list)¶

geef het langste pad-voorvoegsel terug (karakter-voor-karakter genomen) dat aprefix is van alle paden in de lijst. Als de lijst leeg is, geeft u de lege tekenreeks('') terug.

Note

deze functie kan ongeldige paden retourneren omdat het een karakter tegelijk werkt. Ziecommonpath()om een geldig pad te verkrijgen.

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

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.dirname(path)¶

Geef de mapnaam van pathname path terug. Dit is het eerste element van het paar dat wordt geretourneerd door pad door te geven naar de functie split().

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.exists(path)¶

Return True if path refereert naar een bestaand pad of een openfile descriptor. Geeft False terug voor verbroken symbolische koppelingen. Op sommige platforms kan deze functie False teruggeven als er geen toestemming is verleend om os.stat() uit te voeren op het gevraagde bestand, zelfs als het pad fysiek bestaat.

gewijzigd in versie 3.3: pad kan nu een geheel getal zijn: True wordt geretourneerd als het een open bestandsdescriptor is, False anders.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.lexists(path)¶

Return True if path refereert naar een bestaand pad. Geeft True voor afgebroken symbolische koppelingen terug. Gelijk aan exists() op platforms zonderos.lstat().

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.expanduser(path)¶

op Unix en Windows, retourneer het argument met een initiële component van ~ of~user vervangen door de persoonlijke map van die gebruiker.

op Unix wordt een initiaal ~ vervangen door de omgevingsvariabele HOMEindien deze is ingesteld; anders wordt de persoonlijke map van de huidige gebruiker opgezocht in de wachtwoordmap via de ingebouwde module pwd. Een initiaal ~userwordt direct opgezocht in de wachtwoordmap.

op Windows wordt USERPROFILE gebruikt indien ingesteld, anders wordt een combinatie van HOMEPATH en HOMEDRIVE gebruikt. Een initiaal~user wordt afgehandeld door het laatste directory-component te verwijderen van het hierboven afgeleide createduser-pad.

als de uitbreiding mislukt of als het pad niet met een tilde begint, wordt het pad onveranderd omgekeerd.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

gewijzigd in versie 3.8: gebruikt HOME niet meer op Windows.

os.path.expandvars(path)¶

geef het argument terug met uitgevouwen omgevingsvariabelen. Substrings in de vorm$name of ${name} worden vervangen door de waarde van environment variablename. Misvormde namen van variabelen en verwijzingen naar niet-bestaande variabelen zijn links ongewijzigd.

op Windows worden uitbreidingen %name% ondersteund naast $name en${name}.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.getatime(path)¶

Geef de tijd van de laatste toegang van pad terug. De return waarde is een floating point getal dat het aantal seconden sinds de epoch geeft (zie de time module). VerhoogOSError als het bestand niet bestaat of ontoegankelijk is.

os.path.getmtime(path)¶

Geef de tijd van de laatste wijziging van pad terug. De return waarde is een floating point numberg die het aantal seconden sinds de epoch aangeeft (zie de time module).Verhoog OSError als het bestand niet bestaat of ontoegankelijk is.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.getctime(path)¶

Geef de ctime van het systeem terug die op sommige systemen (zoals Unix) de tijd is van de laatste metadata verandering, en op andere (zoals Windows), de aanmaaktijd is voor path.De return waarde is een getal dat het aantal seconden geeft sinds de epoch (zie de time module). Verhoog OSError als het bestand niet bestaat of ontoegankelijk is.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.getsize(path)¶

Geef de grootte, in bytes, van path terug. Verhoog OSError als het bestand niet bestaat of ontoegankelijk is.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.isabs(path)¶

geef True terug als path een absolute padnaam is. Op Unix betekent dit dat het begint met een slash, op Windows begint het met een (back)slash na het afhakken van een potentiële stationsletter.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.isfile(path)¶

Return True if path is an existing regular file.Dit volgt symbolische koppelingen, dus zowel islink() als isfile() kunnen waar zijn voor hetzelfde pad.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.isdir(path)¶

Return True if path is an existing directory. Dit volgt symbolische koppelingen, dus zowel islink() als isdir() kunnen waar zijn voor hetzelfde pad.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.islink(path)¶

Return True if path refereert naar een existing directoryentry die een symbolische link is. Altijd False als symbolische koppelingen niet ondersteund worden door de Python runtime.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.ismount(path)¶

Return True if pathname path is a mount point: een punt in een bestandssysteem waar een ander bestandssysteem is aangekoppeld. Op POSIX controleert de functie of de ouder van pad, path/.., zich op een ander apparaat bevindt dan pad, of dat path/.. en pad naar de samei-node op hetzelfde apparaat wijzen — Dit zou koppelpunten moeten detecteren voor alle UNIX-en POSIX-varianten. Het is niet in staat om bind mounts betrouwbaar te detecteren op hetzelfde bestandssysteem. In Windows worden een stationsletter root en een share UNC altijd koppelpunten, en voor elk ander pad GetVolumePathName wordt aangeroepen om te zien of het verschilt van het invoerpad.

nieuw in versie 3.4: ondersteuning voor het detecteren van niet-root koppelpunten op Windows.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.join(path, * paths)¶

op intelligente wijze een of meer padcomponenten verbinden. De return waarde is de samenvoeging van pad en alle leden van *paden met exact ééndirectory scheidingsteken (os.sep) na elk niet-leeg deel behalve het laatste, wat betekent dat het resultaat alleen eindigt in een scheidingsteken als het laatste deel leeg is. Als een component een absoluut pad is, worden alle voorgaande componenten weggegooid en gaat de verbinding verder vanaf het absolute padcomponent.

in Windows wordt de stationsletter niet gereset wanneer een absoluut padcomponent (bijvoorbeeld r'\foo') wordt aangetroffen. Als een component een driveletter bevat, worden alle voorgaande componenten weggegooid en wordt de stationsletter opnieuw ingesteld. Merk op dat, aangezien er een huidige map is voor elk station,os.path.join("c:", "foo") een pad vertegenwoordigt relatief aan de huidige map op station C: (c:foo), niet c:\foo.

gewijzigd in versie 3.6: accepteert een pad-achtig object voor pad en paden.

os.path.normcase(path)¶

normaliseer het geval van een padnaam. In Windows, Converteer alle tekens in thepathname naar kleine letters, en converteer ook vooruit slashes naar achterwaartse slashes.Geef op andere besturingssystemen het pad ongewijzigd terug.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.normpath(path)¶

normaliseer een padnaam door redundante scheidingstekens en verwijzingen naar een hoger niveau in te klappen zodat A//B, A/B/, A/./B en A/foo/../B allbecome A/B. Deze string manipulatie kan de Betekenis veranderen van een pad dat symbolische links bevat. Op Windows zet het naar voren schuine strepen om naar achteren schuine strepen. Gebruik normcase()om hoofdletters te normaliseren.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.realpath(path)¶

geef het canonieke pad van de opgegeven bestandsnaam terug, waarbij alle symbolische links in het pad worden geëlimineerd (als ze door het besturingssysteem worden ondersteund).

opmerking

wanneer symbolische linkcycli optreden, zal het geretourneerde pad één lid van de cyclus zijn, maar er wordt geen garantie gegeven over welk lid dat zal zijn.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

gewijzigd in versie 3.8: symbolische koppelingen en kruispunten worden nu opgelost in Windows.

os.path.relpath(pad, start = os.curdir)¶

Geef een relatief bestandspad terug naar het pad van de huidige map of van een optionele startmap. Dit is een padberekening: het bestandssysteem wordt niet benaderd om het bestaan of de aard van pad ofstart te bevestigen.

start standaard os.curdir.

Beschikbaarheid: Unix, Windows.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.samefile(path1, path2)¶

geef True terug als beide pathname-argumenten naar hetzelfde bestand of dezelfde map verwijzen.Dit wordt bepaald door het apparaatnummer en het i-knooppuntnummer en roept een uitzondering op als een os.stat() aanroep op een van beide padnamen mislukt.

Beschikbaarheid: Unix, Windows.

gewijzigd in versie 3.2: Windows-Ondersteuning toegevoegd.

gewijzigd in versie 3.4: Windows gebruikt nu dezelfde implementatie als alle andere platforms.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.sameopenfile(FP1, fp2)¶

geef True terug als de bestandsdescriptoren fp1 en fp2 naar hetzelfde bestand verwijzen.

Beschikbaarheid: Unix, Windows.

gewijzigd in versie 3.2: Windows-Ondersteuning toegevoegd.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.samestat(stat1, stat2)¶

geef True terug als de statussen stat1 en stat2 naar hetzelfde bestand verwijzen.Deze structuren kunnen zijn geretourneerd met os.fstat(),os.lstat() of os.stat(). Deze functie implementeert de onderliggende vergelijking die wordt gebruikt door samefile() en sameopenfile().

Beschikbaarheid: Unix, Windows.

gewijzigd in versie 3.4: Windows-Ondersteuning toegevoegd.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.split(path)¶

splits het padnaam pad in een paar, (head, tail) waar tail de laatste padnaam component is en head alles is wat daar naartoe leidt. Het staart deel zal nooit een slash bevatten; als pad eindigt in een slash, staart zal leeg zijn. Als er geen schuine streep in pad is, zal het hoofd leeg zijn. Alspath leeg is, zijn zowel kop als staart leeg. Trailing slashes arestripped van het hoofd, tenzij het de wortel (een of meer slashes alleen). In alle gevallen geeft join(head, tail) een pad terug naar dezelfde locatie als pad (maar de tekenreeksen kunnen verschillen). Zie ook de functies dirname() enbasename().

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.splitdrive(path)¶

splits het padnaam pad in een paar (drive, tail) waarbij het station een aankoppelpunt of de lege tekenreeks is. Op systemen die geen drivespecifications gebruiken, zal drive altijd de lege string zijn. In alle gevallen zal drive+ tail hetzelfde zijn als path.

op Windows splitst een padnaam in drive / UNC sharepoint en relatief pad.

als het pad een stationsletter bevat, bevat het station alles tot en met de dubbele punt.bijv. splitdrive("c:/dir") geeft ("c:", "/dir")

als het pad een UNC-pad bevat, zal het station de hostnaam en share bevatten, tot maar niet met inbegrip van het vierde scheidingsteken.bv. splitdrive("//host/computer/dir") geeft terug ("//host/computer", "/dir")

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.splitext(path)¶

splits het padnaam pad in een paar (root, ext) zodanig dat root + ext ==path, en ext leeg is of begint met een punt en maximaal één periode bevat. Aanloopperiodes op de basisnaam worden genegeerd; splitext('.cshrc')geeft ('.cshrc', '')terug.

gewijzigd in versie 3.6: accepteert een pad-achtig object.

os.path.supports_unicode_filenames

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

More: