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ö: