久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

python 跨目錄訪問文件

 軟件開發(fā)組 2020-07-02

1.同級(jí),、同目錄的文件之間的訪問


有這樣一個(gè)目錄結(jié)構(gòu)

img

假如,,in_A.py 這個(gè)文件想調(diào)用 hello_world.py 中的函數(shù)怎么辦呢? --->>>  import 

只需在 in_A.py 中 寫入

import hello_world
hello_world.functions()

這樣就可以訪問啦,,什么原理呢,?

import hello_world 的本質(zhì)

首先,import 語法會(huì)將 hello_world 里的所有內(nèi)容解釋(一行一行的讀)到內(nèi)存中,,并把它賦值給hello_world 這個(gè)對(duì)象,,然后我們就可以通過點(diǎn)號(hào)(' . ')訪問這個(gè)對(duì)象里python基礎(chǔ)教程的內(nèi)容了,比如調(diào)用函數(shù),,使用變量......

比如 hello_world.hello() 就是調(diào)用了hello_world.py 里的 hello() 方法,。

接下來一個(gè)問題,import 是怎么找到 hello_world.py 這個(gè)文件的呢,?

--->>> import 首先會(huì)在當(dāng)前目錄下找,,沒找到就去環(huán)境變量里找。

環(huán)境變量,,可以通過 sys 模塊下的 path列表查看哈

import sysprint(sys.path)

到這里,,就明白了同級(jí)同目錄之間的文件訪問了

2.同級(jí)、不同目錄的文件之間的訪問


現(xiàn)在來了個(gè)這樣的目錄結(jié)構(gòu)

img

如果說 in_B.py 這位老兄也想訪問 hello_world.py 里的對(duì)象怎么辦呢,? 直接 import是肯定就不行啦,,因?yàn)楫?dāng)前目錄下找不到,環(huán)境變量里也找不到,。

如果 import content_A 會(huì)是什么效果呢,?當(dāng)然也是不行的,。content_A 沒在環(huán)境變量里。既然他沒有在環(huán)境變量里那就把他的“ father ”加進(jìn)去吧,,為啥加他的上級(jí)目錄,?它的父級(jí)目錄再環(huán)境變量里的話,找到他的父級(jí)目錄也就找到他了,。

把上級(jí)目錄加入環(huán)境變量:

import osimport sys
path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))# print(path)sys.path.append(path)

dirname() ,返回上級(jí)目錄

abspath() ,把相對(duì)路勁轉(zhuǎn)化為絕對(duì)路徑

__flie__ 變量存儲(chǔ)的是當(dāng)前文件的相對(duì)路徑

最后通過 append() 把一個(gè)路徑加入環(huán)境變量,,完成了上面的 一系列操作以后,問題又來了

之前 import 的是 .py的文件,,現(xiàn)在直接 import 了一個(gè)目錄,,解釋器會(huì)干什么呢?如果一個(gè)目錄下有一堆文件他應(yīng)該 import 那個(gè)呢,?

hh,解釋器是很聰明的,,他會(huì)跑去解釋目錄下的 __init__.py 文件,。通常這個(gè)文件都是沒有內(nèi)容的,但是解釋器既然都去了,,那么就給幾行代碼給他解釋一下吧,。

這時(shí)就可以用把 content_A 的父級(jí)目錄加入環(huán)境變量的方法,把 content_A 加入環(huán)境變量,,把代碼寫入__init__.py 就好了,,這時(shí)就可以愉快的在 in_B.py 里 import, “content_A”目錄下的文件啦,,不只限于 hello_world

3.不同級(jí),、不同目錄的文件之間的訪問


有了上面的思路,想 import 誰,,把他的父級(jí)目錄送進(jìn)環(huán)境變量就可以了,,就不舉例子了

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多