We kunnen de locatie (pad) van het actieve scriptbestand .py ophalen met __file__. __bestand__ is handig voor het lezen van andere bestanden en geeft de huidige locatie van het actieve bestand weer. Het verschilt in versies. In Python 3.8 en eerder retourneert __file__ het pad dat is opgegeven bij het uitvoeren van de Python commando.
We kunnen een relatief pad verkrijgen als er een relatief pad is opgegeven. Als we een absoluut pad opgeven, wordt er een absoluut pad geretourneerd. Maar in Python 3.9 en hoger retourneert __file__ altijd een absoluut pad, de OS-module biedt verschillende hulpprogramma's.
Manieren om de huidige map in Python te verkrijgen met OS
Er zijn veel manieren om de huidige map in Python met OS te krijgen. Hier gebruiken we enkele algemeen gebruikte manieren om de huidige map in Python te krijgen met het volgende besturingssysteem.
- Path.cwd() gebruiken
- Gebruik makend van os.getcwd()
- Pathlib.Path().absolute() gebruiken
- Gebruik van os. pad.basisnaam
- Gebruik makend van os.pad.abspath
Zoek het pad naar het opgegeven bestand met Path.cwd()
Hier neemt het idee van de Current Working Directory (CWD) een belangrijke plaats in. Denk aan de CWD als de map waarin de Python draait. Python gaat ervan uit dat het bestand in de CWD start als het eenvoudigweg op naam wordt aangeroepen, dus een verwijzing naar alleen de naam werkt alleen als het bestand in de CWD van Python staat. Path.cwd() retourneert de huidige map.
Python3
from> pathlib>import> Path> print>(Path.cwd())> |
>
>
Uitgang:
C:Usersint.suraj.gupta>
Haal de huidige map op in Python met OS met behulp van os.getcwd()
We kunnen het absolute pad van de huidige werkmap verkrijgen. Afhankelijk van de gebruikte versie wordt dus een relatief pad of een absoluut pad opgehaald. Om de huidige werkmap in Python te verkrijgen, gebruikt u het bestand os. krijgcwd () methode. Deze functie van de Python OS-module retourneert de string met het absolute pad naar de huidige werkmap.
Python3
import> os> print>(>'Get current working directory : '>, os.getcwd())> |
>
>
Uitgang:
Get current working directory : C:Usersint.suraj.gupta>
Haal de huidige map op in Python met OS gebruik makend van pathlib.Path().absolute()
Deze functie van de Python OS-module retourneert de tekenreeks die het absolute pad naar de huidige werkmap bevat.
Python3
import> pathlib> # current working directory> print>(pathlib.Path().absolute())> |
>
>
Uitgang:
C:Usersint.suraj.gupta>
Zoek het pad naar het opgegeven bestand met os.path.basename
We kunnen de bestandsnaam en de mapnaam van het actieve bestand op de onderstaande manier verkrijgen. Het belangrijkste om te begrijpen __bestand__ is dat de tolk het tijdens runtime aanpast, zodat Python weet met welk bestand het te maken heeft als het script meerdere modules gebruikt. Het voordeel van het aanroepen van Path( file__) is dat het een string retourneert die het pad en het bestand bevat waar u momenteel aan werkt.
- U kunt __file__ aanroepen terwijl u een bestand wijzigt. Als gevolg hiervan zal het niet worden uitgevoerd als u het vanuit de shell-interpreter probeert aan te roepen.
- __file__ functioneert niet in a Jupyter-notebooks context.
Python3
mysql gebruiker aanmaken
import> os> print>(>'File name : '>, os.path.basename(__file__))> print>(>'Directory Name: '>, os.path.dirname(__file__))> |
>
>
Uitgang:
Vind het pad naar het gegeven bestand met os.path.abspath
Het klinkt misschien ingewikkeld, maar os.path.abspath() betekent eenvoudigweg dat deze methode de padnaam retourneert naar het pad dat als argument voor deze functie is opgegeven. De documentatie beweert dat deze methode een genormaliseerde, geabsoluteerde versie van het padnaampad produceert.
Voorbeeld 1: Om het absolute pad van het actieve bestand te verkrijgen.
Python3
import> os> print>(>'Absolute path of file: '>,> >os.path.abspath(__file__))> print>(>'Absolute directoryname: '>,> >os.path.dirname(os.path.abspath(__file__)))> |
>
>
Uitgang:

Voorbeeld 2: Als we een absoluut pad specificeren in os.path.abspath(), zal het worden geretourneerd zoals het is, dus als __file__ een absoluut pad is, er zal geen fout optreden, zelfs niet als we os.path instellen. abspath (__bestand__)
Python3
import> os> pythonfile>=> 'pathfinding.py'> # if the file is present in current directory,> # then no need to specify the whole location> print>(>'Path of the file..'>, os.path.abspath(pythonfile))> for> root, dirs, files>in> os.walk(r>'E:geeksforgeekspath_of_given_file'>):> >for> name>in> files:> > ># As we need to get the provided python file,> ># comparing here like this> >if> name>=>=> pythonfile:> >print>(os.path.abspath(os.path.join(root, name)))> |
>
>
Uitgang:
