日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python跨目录调用_python 跨目录访问文件

發布時間:2023/12/15 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python跨目录调用_python 跨目录访问文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.同級、同目錄的文件之間的訪問

有這樣一個目錄結構

假如,in_A.py 這個文件想調用 hello_world.py 中的函數怎么辦呢? --->>>??import

只需在 in_A.py 中 寫入

importhello_world

hello_world.functions()

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

import hello_world的本質

首先,import 語法會將 hello_world 里的所有內容解釋(一行一行的讀)到內存中,并把它賦值給hello_world 這個對象,然后我們就可以通過點號(' . ')訪問這個對象里的內容了,比如調用函數,使用變量......

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

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

--->>> import 首先會在當前目錄下找,沒找到就去環境變量里找。

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

importsysprint(sys.path)

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

2.同級、不同目錄的文件之間的訪問

現在來了個這樣的目錄結構

如果說 in_B.py 這位老兄也想訪問 hello_world.py 里的對象怎么辦呢? 直接 import是肯定就不行啦,因為當前目錄下找不到,環境變量里也找不到。

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

把上級目錄加入環境變量:

importosimportsys

path= os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#print(path)

sys.path.append(path)

dirname() ,返回上級目錄

abspath() ,把相對路勁轉化為絕對路徑

__flie__變量存儲的是當前文件的相對路徑

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

之前 import 的是 .py的文件,現在直接 import 了一個目錄,解釋器會干什么呢?如果一個目錄下有一堆文件他應該 import 那個呢?

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

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

3.不同級、不同目錄的文件之間的訪問

有了上面的思路,想 import 誰,把他的父級目錄送進環境變量就可以了,就不舉例子了

總結

以上是生活随笔為你收集整理的python跨目录调用_python 跨目录访问文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。