logo

Python – Tuo ylätason hakemistosta

Tässä artikkelissa opimme tuomaan moduulin ylätason hakemistosta. Python 3.3:sta moduuliin viittaaminen tai tuominen ylähakemistossa ei ole sallittua. Alla olevasta esimerkistä ymmärrät tämän selvästi.

Päähakemistossa meillä on alihakemisto geeks.py-tiedosto ja alihakemistossa python-tiedosto nimeltä temp.py. Kokeillaan nyt, voimmeko tuoda emohakemiston geeks-moduulin temp.py-tiedostosta alihakemistosta.



geeks.py (moduuli emohakemistossa)

Python 3




hei maailma javalla





def> geek_method():> >print>(>'This method in geeks module.......bye'>)>

>

>

temp.py (python-tiedosto alihakemistossa)

Python 3




# importing the module in> # parent directory> from> parentdirectory>import> geeks> # calling the func1() method> # from geeks module> geeks.geek_method()>

10/50
>

>

Kuten olemme aiemmin käsitelleet, moduulia ei ole mahdollista tuoda päähakemistosta, joten tämä johtaa johonkin tämän kaltaiseen virheeseen.

Traceback (viimeisin puhelu viimeisin):

Tiedosto C:/Users/sai mohan pulamolu/Desktop/parentdirectory/subdirectory/temp.py, rivi 2, in

emohakemistosta import geeks

ModuleNotFoundError: Ei moduulia nimeltä 'emohakemisto'

Nyt opimme tuomaan moduulin ylätason hakemisto:

Moduulin tuontia varten hakemiston, jossa kyseinen moduuli on, on oltava PYTHONPATHissa. Se on ympäristömuuttuja, joka sisältää luettelon paketeista, jotka Python lataa. PYTHONPATHissa olevien pakettien luettelo on myös sys.path:ssa, joten se lisää emohakemistopolun sys.path.

Käytämme työssämme kolmea erilaista lähestymistapaa, jotka selitetään alla esimerkkien avulla.

Tapa 1: Tuo päähakemistosta sys.path-menetelmällä

Tässä käytämme sys-moduulia ja asetamme polun suoraan vaadittuun moduuliin.

Lisää päähakemisto hakemistoon sys.path käyttämällä liitä() menetelmä . Se on sys-moduulin sisäänrakennettu toiminto, jota voidaan käyttää polkumuuttujan kanssa lisäämään tulkkien hakupolku. Seuraava esimerkki näyttää, kuinka tämä voidaan tehdä.

Python 3


lihavoitu teksti css



import> sys> # setting path> sys.path.append(>'../parentdirectory'>)> # importing> from> parentdirectory.geeks>import> geek_method> # using> geek_method()>

>

>

Lähtö:

This method in geeks module.......bye>

Tapa 2: Tuo ylätason hakemistosta käyttämällä os.path.abspath() -menetelmä

Tässä käytämme sys-moduulia sekä polkumoduulia hakemiston saamiseen ja asetamme polun suoraan vaadittuun moduuliin.

Syntaksi: os.path.abspath(polku)

Parametri:
Polku: Polkumainen objekti, joka edustaa tiedostojärjestelmän polkua.

Palautustyyppi: Tämä menetelmä palauttaa normalisoidun version polun polusta.

Ensin saamme sen hakemiston nimen, jossa temp.py-tiedosto tällä hetkellä käyttää polkua polku (__file__). abspath(), lisää toiseksi hakemisto hakemistoon sys.path .lisää tarkistaaksesi, käytämme sen menetelmää.

Python 3


int:n muuntaminen merkkijonoksi javassa



import> path> import> sys> # directory reach> directory>=> path.path(__file__).abspath()> # setting path> sys.path.append(directory.parent.parent)> # importing> from> parentdirectory.geeks>import> geek_method> # using> geek_method()>

>

>

Lähtö:

 This method in geeks module.......bye>

Tapa 3: Tuo ylätason hakemistosta käyttämällä os.path.dirname menetelmä

Tässä käytämme sys-moduulia sekä os-moduulia hakemiston hankkimiseen (nykyinen sekä vanhempi) ja asetamme polun suoraan vaadittuun moduuliin.

voiko abstraktilla luokalla olla konstruktori

Syntaksi: os.path.dirname(polku)

Parametri:
polku : Polkumainen objekti, joka edustaa tiedostojärjestelmän polkua.

Palautustyyppi: Tämä menetelmä palauttaa merkkijonoarvon, joka edustaa määritetyn polun hakemiston nimeä.

Ensinnäkin saamme nykyisen hakemiston käyttämällä os.path.dirname (os.path.realpath(__file__)), toiseksi saamme päähakemiston käyttämällä os.path.dirname() ja lopuksi lisää päähakemisto hakemistoon sys.path tarkistamiseksi, käytämme sen menetelmää.

Python 3




import> sys> import> os> # getting the name of the directory> # where the this file is present.> current>=> os.path.dirname(os.path.realpath(__file__))> # Getting the parent directory name> # where the current directory is present.> parent>=> os.path.dirname(current)> # adding the parent directory to> # the sys.path.> sys.path.append(parent)> # now we can import the module in the parent> # directory.> import> geeks> geeks.geek_method()>

>

>

Lähtö: