Găsiți calea către fișierul dat folosind Python

Găsiți calea către fișierul dat folosind Python

Putem obține locația (calea) fișierului script care rulează .py cu __file__. __fişier__ este util pentru citirea altor fișiere și oferă locația curentă a fișierului care rulează. Diferă în versiuni. În Python 3.8 și versiunile anterioare, __file__ returnează calea specificată la executarea Piton comanda.

Putem obține o cale relativă dacă este specificată o cale relativă. Dacă specificăm o cale absolută, este returnată o cale absolută. Dar în Python 3.9 și mai târziu, __file__ returnează întotdeauna o cale absolută, modul OS oferă diverse utilități.

Modalități de a obține directorul curent în Python cu sistemul de operare

Există multe modalități de a obține directorul curent în Python cu sistemul de operare. Aici, folosim câteva modalități utilizate în general pentru a obține directorul curent în Python cu sistemul de operare pe care le urmează.

  • Folosind Path.cwd()
  • Folosind os.getcwd()
  • Folosind pathlib.Path().absolute()
  • Folosind os. cale.nume de bază
  • Folosind os.path.abspath

Găsiți calea către fișierul dat folosind Path.cwd()

Aici, ideea Directorului de lucru curent (CWD) ocupă un loc important. Gândiți-vă la CWD ca folderul în care rulează Python. Python presupune că fișierul începe în CWD dacă este numit pur și simplu după nume, deci o referință numai pentru nume va funcționa numai dacă fișierul se află în CWD Python. Path.cwd() returnează directorul curent.

Python3




from> pathlib> import> Path> print> (Path.cwd())>

Ieșire:

C:Usersint.suraj.gupta 

Obțineți directorul curent în Python cu sistemul de operare folosind os.getcwd()

Putem obține calea absolută a directorului de lucru curent. Deci, în funcție de versiunea utilizată, este preluată fie o cale relativă, fie o cale absolută. Pentru a obține directorul de lucru curent în Python, utilizați os. getcwd () metoda. Această funcție a modulului Python OS returnează șirul care conține calea absolută către directorul de lucru curent.

Python3




import> os> print> (> 'Get current working directory : '> , os.getcwd())>

Ieșire:

Get current working directory : C:Usersint.suraj.gupta 

Obțineți directorul curent în Python cu sistemul de operare folosind pathlib.Path().absolute()

Această funcție a lui Python modul OS returnează șirul care conține calea absolută către directorul de lucru curent.

Python3




import> pathlib> # current working directory> print> (pathlib.Path().absolute())>

Ieșire:

C:Usersint.suraj.gupta 

Găsiți Calea către fișierul dat folosind os.path.basename

Putem obține numele fișierului și numele directorului fișierului care rulează în modul de mai jos. Lucrul cheie despre care trebuie să înțelegeți __fişier__ este că interpretul îl ajustează în timpul rulării astfel încât Piton știe cu ce fișier are de-a face atunci când scriptul folosește mai multe module. Avantajul apelării Path( file__) este că returnează un șir care conține calea și fișierul la care lucrați în prezent.

  • Puteți apela __file__ în timp ce modificați un fișier. Ca rezultat, dacă încercați să îl apelați din interpretul shell, nu se va executa.
  • __file__ nu funcționează într-un caietul Jupyter context.

Python3




import> os> print> (> 'File name : '> , os.path.basename(__file__))> print> (> 'Directory Name: '> , os.path.dirname(__file__))>

Ieșire:

Găsiți Calea către fișierul dat folosind os.path.abspath

Poate suna complicat, dar os.path.abspath() înseamnă pur și simplu că această metodă returnează calea către calea furnizată ca argument pentru această funcție. Documentația susține că această metodă produce o versiune absolutizată normalizată a căii de cale.

Exemplul 1: Pentru a obține calea absolută a fișierului care rulează.

Python3




import> os> print> (> 'Absolute path of file: '> ,> > os.path.abspath(__file__))> print> (> 'Absolute directoryname: '> ,> > os.path.dirname(os.path.abspath(__file__)))>

Ieșire:

Exemplul 2: Dacă specificăm o cale absolută în os.path.abspath(), aceasta va fi returnată așa cum este, deci dacă __file__ este o cale absolută, nicio eroare nu va apărea chiar dacă setăm os.path. abspath (__fişier__)

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)))>

Ieșire: