logo

Trobeu el camí al fitxer donat mitjançant Python

Podem obtenir la ubicació (camí) del fitxer de script en execució .py amb __file__. __dossier__ és útil per llegir altres fitxers i proporciona la ubicació actual del fitxer en execució. Es diferencia en les versions. A Python 3.8 i anteriors, __file__ retorna el camí especificat en executar el Python comandament.

Podem obtenir un camí relatiu si s'especifica un camí relatiu. Si especifiquem un camí absolut, es retorna un camí absolut. Però a Python 3.9 i posteriors, __file__ sempre retorna un camí absolut, el Mòdul SO ofereix diverses utilitats.

Maneres d'obtenir el directori actual a Python amb el sistema operatiu

Hi ha moltes maneres d'obtenir el directori actual a Python amb el sistema operatiu. Aquí, estem utilitzant algunes maneres d'aconseguir el directori actual a Python amb el sistema operatiu que segueixen.



  • Utilitzant Path.cwd()
  • Utilitzant os.getcwd()
  • Utilitzant pathlib.Path().absolute()
  • Utilitzant os. path.basename
  • Utilitzant os.path.abspath

Trobeu el camí al fitxer donat mitjançant Path.cwd()

Aquí, la idea del Directori de treball actual (CWD) ocupa un lloc important. Penseu en el CWD com a carpeta on s'executa el Python. Python assumeix que el fitxer s'inicia al CWD si s'anomena simplement pel nom, de manera que una referència només de nom només funcionarà si el fitxer es troba al CWD de Python. Path.cwd() retorna el directori actual.

Python 3




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

>

>

Sortida:

C:Usersint.suraj.gupta>

Obteniu el directori actual a Python amb el sistema operatiu utilitzant os.getcwd()

Podem obtenir la ruta absoluta del directori de treball actual. Així, depenent de la versió utilitzada, es recupera una ruta relativa o una ruta absoluta. Per obtenir el Directori de treball actual a Python, utilitzeu el sistema operatiu. getcwd () mètode. Aquesta funció del mòdul Python OS retorna la cadena que conté la ruta absoluta al directori de treball actual.

Python 3




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

>

>

Sortida:

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

Obteniu el directori actual a Python amb el sistema operatiu utilitzant pathlib.Path().absolut()

Aquesta funció de Python Mòdul SO retorna la cadena que conté la ruta absoluta al directori de treball actual.

Python 3




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

>

>

Sortida:

C:Usersint.suraj.gupta>

Trobeu el camí al fitxer donat mitjançant os.path.basename

Podem obtenir el nom del fitxer i el nom del directori del fitxer en execució de la manera següent. La clau que cal entendre __dossier__ és que l'intèrpret ho ajusta en temps d'execució de manera que Python sap amb quin fitxer està tractant quan l'script utilitza diversos mòduls. L'avantatge de cridar a Path(fitxer__) és que retorna una cadena que conté la ruta i el fitxer en què esteu treballant actualment.

  • Podeu trucar a __file__ mentre modifiqueu un fitxer. Com a resultat, si intenteu cridar-lo des de l'intèrpret de l'intèrpret d'ordres, no s'executarà.
  • __file__ no funciona en a Llibreta Jupyter context.

Python 3

clau d'inserció del portàtil




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

>

>

Sortida:

Trobeu el camí al fitxer donat mitjançant os.path.abspath

Pot semblar complicat, però os.path.abspath() simplement vol dir que aquest mètode retorna el nom del camí d'accés al camí subministrat com a argument d'aquesta funció. La documentació afirma que aquest mètode produeix una versió absolutitzada normalitzada de la ruta del nom de ruta.

Exemple 1: Per obtenir la ruta absoluta del fitxer en execució.

Python 3




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

>

>

Sortida:

Exemple 2: Si especifiquem una ruta absoluta a os.path.abspath(), es retornarà tal com és, de manera que si __file__ és una ruta absoluta, no es produirà cap error encara que establim os.path. abspat (__dossier__)

Python 3




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

>

>

Sortida: