Atrodiet ceļu uz doto failu, izmantojot Python
Darbojošā skripta faila .py atrašanās vietu (ceļu) varam iegūt ar __file__. __fails__ ir noderīgs citu failu lasīšanai un norāda pašreizējā faila atrašanās vietu. Tas atšķiras versijās. Python 3.8 un vecākās versijās __file__ atgriež ceļu, kas norādīts, izpildot Python komandu.
Mēs varam iegūt relatīvo ceļu, ja ir norādīts relatīvais ceļš. Ja mēs norādām absolūtu ceļu, tiek atgriezts absolūtais ceļš. Taču Python 3.9 un jaunākās versijās __file__ vienmēr atgriež absolūto ceļu, the OS modulis nodrošina dažādus komunālos pakalpojumus.
Veidi, kā iegūt pašreizējo Python direktoriju, izmantojot OS
Ir daudzi veidi, kā iegūt pašreizējo Python direktoriju ar OS. Šeit mēs izmantojam dažus vispārpieņemtus veidus, kā iegūt pašreizējo Python direktoriju ar sekojošo OS.
- Izmantojot Path.cwd()
- Izmantojot os.getcwd()
- Izmantojot pathlib.Path().absolute()
- Izmantojot os. ceļš.pamatnosaukums
- Izmantojot os.path.abspath
Atrodiet ceļu uz doto failu, izmantojot Path.cwd()
Šeit svarīga vieta ir idejai par pašreizējo darba direktoriju (CWD). Padomājiet par CWD kā mapi, kurā darbojas Python. Python pieņem, ka fails sākas CWD, ja tas tiek izsaukts vienkārši pēc nosaukuma, tāpēc atsauce tikai uz nosaukumu darbosies tikai tad, ja fails atrodas Python CWD. Path.cwd() atgriež pašreizējo direktoriju.
Python3
from> pathlib> import> Path> print> (Path.cwd())> |
Izvade:
C:Usersint.suraj.gupta
Iegūstiet pašreizējo Python direktoriju ar OS izmantojot os.getcwd()
Mēs varam iegūt pašreizējā darba direktorija absolūto ceļu. Tātad atkarībā no izmantotās versijas tiek izgūts relatīvais ceļš vai absolūtais ceļš. Lai programmā Python iegūtu pašreizējo darba direktoriju, izmantojiet OS. getcwd () metode. Šī Python OS moduļa funkcija atgriež virkni, kas satur absolūto ceļu uz pašreizējo darba direktoriju.
Python3
import> os> print> (> 'Get current working directory : '> , os.getcwd())> |
Izvade:
Get current working directory : C:Usersint.suraj.gupta
Iegūstiet pašreizējo Python direktoriju ar OS izmantojot pathlib.Path().absolute()
Šī Python funkcija OS modulis atgriež virkni, kas satur absolūto ceļu uz pašreizējo darba direktoriju.
Python3
import> pathlib> # current working directory> print> (pathlib.Path().absolute())> |
Izvade:
C:Usersint.suraj.gupta
Atrodiet ceļu uz doto failu, izmantojot os.path.basename
Mēs varam iegūt faila nosaukumu un esošā faila direktorija nosaukumu tālāk norādītajā veidā. Galvenais, kas jāsaprot __fails__ ir tas, ka tulks to pielāgo izpildlaikā, lai Python zina, ar kuru failu tas nodarbojas, ja skripts izmanto vairākus moduļus. Path (fails__) izsaukšanas priekšrocība ir tāda, ka tā atgriež virkni, kas satur ceļu un failu, ar kuru pašlaik strādājat.
- Mainot failu, varat izsaukt __file__. Tā rezultātā, ja mēģināsit to izsaukt no čaulas tulka, tas netiks izpildīts.
- __file__ nedarbojas a Jupyter piezīmju grāmatiņa kontekstā.
Python3
import> os> print> (> 'File name : '> , os.path.basename(__file__))> print> (> 'Directory Name: '> , os.path.dirname(__file__))> |
Izvade:
Atrodiet ceļu uz doto failu, izmantojot os.path.abspath
Tas var izklausīties sarežģīti, taču os.path.abspath() vienkārši nozīmē, ka šī metode atgriež ceļa nosaukumu ceļam, kas ir norādīts kā arguments šai funkcijai. Dokumentācijā teikts, ka šī metode rada normalizētu absolutizētu ceļa nosaukuma ceļa versiju.
1. piemērs: Lai iegūtu darba faila absolūto ceļu.
Python3
import> os> print> (> 'Absolute path of file: '> ,> > os.path.abspath(__file__))> print> (> 'Absolute directoryname: '> ,> > os.path.dirname(os.path.abspath(__file__)))> |
Izvade:
2. piemērs: Ja mēs norādām absolūtu ceļu laukā os.path.abspath(), tas tiks atgriezts tāds, kāds tas ir, tādēļ, ja __file__ ir absolūts ceļš, neviena kļūda neradīsies pat tad, ja iestatīsim os.path. abspath (__fails__)
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)))> |
Izvade: