python 跨目錄呼叫檔案

2021-10-10 20:14:53 字數 1061 閱讀 5085

如果呼叫檔案與被呼叫檔案在同乙個目錄下,則可以非常方便的呼叫。如果呼叫檔案與被呼叫檔案不在同乙個目錄下,如下圖結構所示,應該如何呼叫呢?

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 的語法可以引用一些系統模組,把系統模組引入後就可以呼叫...