logo

Obțineți directorul curent în Python

În acest articol, vom aborda Cum să obțineți și să schimbați directorul de lucru în Python. În timp ce lucrați cu manipularea fișierelor s-ar putea să fi observat că fișierele sunt referite numai după numele lor, de ex. „GFG.txt” și dacă fișierul nu se află în directorul scriptului, Python generează o eroare. Conceptul de Director de lucru curent (CWD) devine important aici. Considerați CWD ca folder, Python funcționează în interior. Ori de câte ori fișierele sunt numite numai după numele lor, Python presupune că începe în CWD, ceea ce înseamnă că o referință numai de nume va avea succes numai dacă fișierul se află în CWD-ul Python.

Notă: Dosarul în care rulează scriptul Python este cunoscut sub numele de Directorul curent. Este posibil să nu fie calea în care se află scriptul Python.



Ce este modulul OS Python?

Python oferă un modul os pentru interacțiunea cu sistemul de operare. Acest modul este inclus în modulul utilitar standard al lui Python. Toate funcțiile din modulul os cresc OSError în cazul numelor și căilor de fișiere invalide sau inaccesibile sau alte argumente care au tipul corect, dar care nu sunt acceptate de sistemul de operare.

Python Găsiți directorul curent

Obțineți un director al scriptului Python curent folosind sys.argv[0]

În acest exemplu, am folosit sys.argv[0] pentru a prelua calea fișierului script și os.path.dirname() extrage directorul curent din cale.

Python3








import> os> import> sys> script_directory>=> os.path.dirname(os.path.abspath(sys.argv[>0>]))> print>(script_directory)>

>

>

Ieșire:

Obțineți directorul scriptului Python curent

Obțineți un director al scriptului Python curent

Obțineți directorul scriptului Python curent folosind modulul de inspectare

În acest exemplu, am folosit inspect.getfile(inspect.currentframe()) care returnează calea fișierului script curent și os.path.dirname() extrage directorul curent din cale.

Python3




import> inspect> import> os> script_directory>=> os.path.dirname(os.path.abspath(> >inspect.getfile(inspect.currentframe())))> > print>(script_directory)>

>

>

Ieșire:

jquery un clic
Obțineți directorul scriptului Python curent

Obțineți directorul scriptului Python curent

Obțineți directorul de lucru curent folosind os.getcwd()

În acest exemplu, am folosit os.getcwd() pentru a obține directorul curent al scriptului Python.

Python3




import> os> > print>(>'File location using os.getcwd():'>, os.getcwd())>

>

>

Ieșire:

File location using os.getcwd(): /home/tuhingfg/Documents/Scripts>

Notă: Folosind os.getcwd() nu funcționează conform așteptărilor atunci când rulați codul Python dintr-un director diferit de scriptul Python.

Rezultat neașteptat la rularea scriptului Python dintr-un alt director decât scriptul folosind os.getcwd()

Scriptul Python este plasat în interior /home/tuhingfg/Documents/Scripts . Când rulăm scriptul din interiorul aceluiași folder, acesta oferă locația corectă a scriptului. Dar când ne schimbăm directorul într-un alt loc, scoate locația acelui director. Asta pentru ca os.getcwd() ia în considerare directorul de unde executăm scriptul. Pe baza acestui fapt, rezultatul os.getcwd() variază de asemenea.

Python3




import> os> > print>(>'File location using os.getcwd():'>, os.getcwd())>

>

>

Ieșire:

Obțineți locația scriptului folosind os.getcwd()

Obțineți locația scriptului folosind os.getcwd()

Obțineți locația Scriptului Python folosind metoda os.path.realpath().

os.path.realpath() poate fi folosit pentru a obține calea scriptului Python curent. De fapt, metoda os.path.realpath() din Python este folosită pentru a obține calea canonică a numelui de fișier specificat prin eliminarea oricăror legături simbolice întâlnite în cale. O variabilă specială __fişier__ se trece la realpath() metodă pentru a obține calea scriptului Python.

În acest exemplu, os.getcwd() și __fişier__ oferă două rezultate diferite. Deoarece executăm scriptul dintr-un folder diferit de script-ul, os.getcwd() ieșirea s-a schimbat în funcție de folderul de execuție al scriptului. Dar __fişier__ generează rezultatul constant, indiferent de directorul de lucru curent.

Python3




import> os> > print>(>'File location using os.getcwd():'>,> >os.getcwd())> > print>(f>'File location using __file__ variable:'>+> >'{os.path.realpath(os.path.dirname(__file__))}'>)>

>

prinde și încearcă java
>

Ieșire:

Obțineți directorul Python

Obțineți un director cu Python

Notă: __file__ este calea fișierului din care a fost încărcat modulul dacă acesta a fost încărcat dintr-un fișier.