Voimme saada käynnissä olevan komentosarjatiedoston .py sijainnin (polun) komennolla __file__. __tiedosto__ on hyödyllinen muiden tiedostojen lukemiseen ja se kertoo käynnissä olevan tiedoston nykyisen sijainnin. Se eroaa versioissa. Python 3.8:ssa ja aiemmissa versioissa __file__ palauttaa polun, joka määritettiin suoritettaessa Python komento.
Voimme saada suhteellisen polun, jos suhteellinen polku on määritetty. Jos määritämme absoluuttisen polun, palautetaan absoluuttinen polku. Mutta Python 3.9:ssä ja uudemmissa versioissa __file__ palauttaa aina absoluuttisen polun, the OS-moduuli tarjoaa erilaisia apuohjelmia.
Tapoja saada nykyinen hakemisto Pythonissa käyttöjärjestelmällä
On monia tapoja saada nykyinen hakemisto Pythonissa käyttöjärjestelmällä. Tässä käytämme joitain yleisesti käytettyjä tapoja saada nykyinen hakemisto Pythonissa seuraavilla käyttöjärjestelmillä.
- Path.cwd()
- Käyttämällä os.getcwd()
- Käytä pathlib.Path().absolute()
- Käyttämällä os. path.basename
- Käyttämällä os.path.abspath
Etsi polku annettuun tiedostoon käyttämällä Path.cwd()
Tässä ajatus Current Working Directorysta (CWD) on tärkeä paikka. Ajattele CWD Python olettaa, että tiedosto alkaa CWD:ssä, jos sitä kutsutaan yksinkertaisesti nimellä, joten pelkkä nimiviittaus toimii vain, jos tiedosto on Pythonin CWD:ssä. Path.cwd() palauttaa nykyisen hakemiston.
Python 3
from> pathlib>import> Path> print>(Path.cwd())> |
>
>
Lähtö:
C:Usersint.suraj.gupta>
Hanki nykyinen hakemisto Pythonissa käyttöjärjestelmällä käyttämällä os.getcwd()
Voimme saada nykyisen työhakemiston absoluuttisen polun. Joten käytetystä versiosta riippuen noudetaan joko suhteellinen polku tai absoluuttinen polku. Saadaksesi nykyisen työhakemiston Pythonissa, käytä käyttöjärjestelmää. getcwd () menetelmä. Tämä Python OS -moduulin toiminto palauttaa nykyisen työhakemiston absoluuttisen polun sisältävän merkkijonon.
Python 3
import> os> print>(>'Get current working directory : '>, os.getcwd())> |
>
>
Lähtö:
Get current working directory : C:Usersint.suraj.gupta>
Hanki nykyinen hakemisto Pythonissa käyttöjärjestelmällä käyttämällä pathlib.Path().absolute()
Tämä Pythonin toiminto OS-moduuli palauttaa nykyisen työhakemiston absoluuttisen polun sisältävän merkkijonon.
Python 3
import> pathlib> # current working directory> print>(pathlib.Path().absolute())> |
>
>
Lähtö:
C:Usersint.suraj.gupta>
Etsi polku annettuun tiedostoon käyttämällä os.path.basename
Voimme saada käynnissä olevan tiedoston tiedostonimen ja hakemiston nimen alla olevalla tavalla. Tärkein asia, joka on ymmärrettävä __tiedosto__ tulkki säätää sitä ajon aikana niin, että Python tietää, mitä tiedostoa se käsittelee, kun komentosarja käyttää useita moduuleja. Path(file__)-kutsun etu on, että se palauttaa merkkijonon, joka sisältää polun ja parhaillaan työskentelevän tiedoston.
- Voit kutsua __file__ tiedostoa muokkaaessasi. Seurauksena on, että jos yrität kutsua sitä komentotulkin avulla, se ei toimi.
- __file__ ei toimi kohdassa a Jupyterin muistikirja yhteydessä.
Python 3
fonttikoot lateksissa
import> os> print>(>'File name : '>, os.path.basename(__file__))> print>(>'Directory Name: '>, os.path.dirname(__file__))> |
>
>
Lähtö:
Etsi polku annettuun tiedostoon käyttämällä os.path.abspath
Se saattaa kuulostaa monimutkaiselta, mutta os.path.abspath() tarkoittaa yksinkertaisesti, että tämä menetelmä palauttaa polun polun, joka on annettu tälle funktiolle argumenttina. Dokumentaatio väittää, että tämä menetelmä tuottaa normalisoidun absolutisoidun version polun polusta.
Esimerkki 1: Saadaksesi käynnissä olevan tiedoston absoluuttisen polun.
Python 3
import> os> print>(>'Absolute path of file: '>,> >os.path.abspath(__file__))> print>(>'Absolute directoryname: '>,> >os.path.dirname(os.path.abspath(__file__)))> |
>
>
Lähtö:

Esimerkki 2: Jos määritämme absoluuttisen polun kohdassa os.path.abspath(), se palautetaan sellaisenaan, joten jos __tiedosto__ on absoluuttinen polku, virhettä ei tapahdu, vaikka asettaisimme os.path. abspath (__tiedosto__)
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)))> |
>
>
Lähtö:
