如果呼叫檔案與被呼叫檔案在同乙個目錄下,則可以非常方便的呼叫。如果呼叫檔案與被呼叫檔案不在同乙個目錄下,如下圖結構所示,應該如何呼叫呢?
project1/
|—— module1/
||—— function1.py|.
..|—— test/
|—— test.py
如果test.py想要呼叫function1.py,可以使用絕對路徑。
import sys
sys.path.
("d:\\git\\book-code\\python_base\\project1\\module1"
)from function1 import add
但是,當****現絕對路徑,可移植性就會變得很差。所以,我們應該避免在專案中使用絕對路徑。
進一步優化上面的**:
import sys
from os.path import dirname, abspath
project_path =
dirname
(dirname
(abspath
(__file__)))
sys.path.
(project_path +
"\\module1"
)from function1 import add
其中:
__file__用於獲取檔案所在的路徑,呼叫os下的abspath(file)可以得到檔案的絕對路徑:
d:\\git\\book-code\\python_base\\project1\\test\\test.py
dirname( )函式用於獲取上級目錄,所以當兩個dirname( )巢狀時,得到的目錄如下:
d:\\git\\book-code\\python_base\\project1
將該路徑與「\module1」目錄拼接,可得到function1.py所屬的目錄,新增到path即可。 python跨目錄呼叫
本文介紹pyhton的跨目錄呼叫問題。在python中有時候我們需要呼叫另一.py檔案中的方法或者類。如果該.py檔案與當前檔案位於同一目錄下那麼問題非常容易解決。如果兩個.py檔案位於不同的目錄下就比較麻煩。下面分別介紹如下 1.兩個.py檔案位於同一目錄下 假設兩個.py檔案分別為test1.p...
python 子包呼叫 跨目錄呼叫
簡單來講,模組是乙個包含python定義和語句的檔案,包是一種通過用 帶點號的模組名 來構造 python 模組命名空間的方法。詳細可以參考廖雪峰的 python教程 模組 使用的python版本 3.7.0 平台 win10 假如在main.py中呼叫pack.mod1.py中的函式func1,而...
Python模組 跨目錄 呼叫總結
系統模組呼叫 說到模組呼叫,大家應該都對import有個基本的了解,在專案裡面非常常見的比如import time,from selenium import webdriver等,我們經常在python中通過from import import 的語法可以引用一些系統模組,把系統模組引入後就可以呼叫...