Vi kan få platsen (sökvägen) för den körande skriptfilen .py med __file__. __fil__ är användbart för att läsa andra filer och det ger den aktuella platsen för den körande filen. Det skiljer sig i versioner. I Python 3.8 och tidigare returnerar __file__ sökvägen som specificerades när du körde Pytonorm kommando.
Vi kan få en relativ sökväg om en relativ sökväg anges. Om vi anger en absolut väg, returneras en absolut väg. Men i Python 3.9 och senare returnerar __file__ alltid en absolut sökväg, den OS-modul tillhandahåller olika verktyg.
Sätt att få den aktuella katalogen i Python med OS
Det finns många sätt att få den aktuella katalogen i Python med OS. Här använder vi några allmänt använda sätt för att få den aktuella katalogen i Python med OS som följer.
- Använder Path.cwd()
- Använder sig av os.getcwd()
- Använder pathlib.Path().absolute()
- Använder os. sökväg.basnamn
- Använder sig av os.path.abspath
Hitta sökvägen till den givna filen med Path.cwd()
Här har idén med Current Working Directory (CWD) en viktig plats. Tänk på CWD som mappen som Python körs i. Python förutsätter att filen startar i CWD om den bara kallas för namnet, så en referens för endast namn fungerar bara om filen finns i Pythons CWD. Path.cwd() returnerar den aktuella katalogen.
Python3
from> pathlib>import> Path> print>(Path.cwd())> |
>
>
Produktion:
C:Usersint.suraj.gupta>
Skaffa den aktuella katalogen i Python med OS använder os.getcwd()
Vi kan få den absoluta sökvägen till den aktuella arbetskatalogen. Så beroende på vilken version som används, hämtas antingen en relativ eller absolut sökväg. För att få den aktuella arbetskatalogen i Python, använd OS. getcwd () metod. Denna funktion i Python OS-modulen returnerar strängen som innehåller den absoluta sökvägen till den aktuella arbetskatalogen.
Python3
import> os> print>(>'Get current working directory : '>, os.getcwd())> |
>
>
Produktion:
Get current working directory : C:Usersint.suraj.gupta>
Skaffa den aktuella katalogen i Python med OS använder sig av pathlib.Path().absolute()
Denna funktion av Python OS-modul returnerar strängen som innehåller den absoluta sökvägen till den aktuella arbetskatalogen.
Python3
import> pathlib> # current working directory> print>(pathlib.Path().absolute())> |
>
>
Produktion:
C:Usersint.suraj.gupta>
Hitta sökvägen till den givna filen med os.path.basename
Vi kan få filnamnet och katalognamnet för den körande filen på nedanstående sätt. Det viktigaste att förstå __fil__ är att tolken justerar det vid körning så att Pytonorm vet vilken fil det handlar om när skriptet använder flera moduler. Fördelen med att anropa Path( file__) är att den returnerar en sträng som innehåller sökvägen och filen du för närvarande arbetar med.
- Du kan anropa __fil__ medan du ändrar en fil. Som ett resultat, om du försöker anropa det från skaltolken, kommer det inte att köras.
- __fil__ fungerar inte i en Jupyter anteckningsbok sammanhang.
Python3
programmering i c-matriser
import> os> print>(>'File name : '>, os.path.basename(__file__))> print>(>'Directory Name: '>, os.path.dirname(__file__))> |
>
>
Produktion:
Hitta sökvägen till den givna filen med os.path.abspath
Det kan låta komplicerat, men os.path.abspath() betyder helt enkelt att den här metoden returnerar sökvägsnamnet till sökvägen som tillhandahålls som ett argument till denna funktion. Dokumentationen hävdar att denna metod producerar en normaliserad absolutiserad version av sökvägen för sökvägen.
Exempel 1: För att få den absoluta sökvägen till den körande filen.
Python3
import> os> print>(>'Absolute path of file: '>,> >os.path.abspath(__file__))> print>(>'Absolute directoryname: '>,> >os.path.dirname(os.path.abspath(__file__)))> |
>
>
Produktion:

Exempel 2: Om vi anger en absolut sökväg i os.path.abspath(), kommer den att returneras som den är, så om __fil__ är en absolut sökväg, inget fel kommer att uppstå även om vi ställer in os.path. abspath (__fil__)
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)))> |
>
>
Produktion:
