python跨目錄呼叫

2021-08-04 11:23:45 字數 1173 閱讀 8702

本文介紹pyhton的跨目錄呼叫問題。

在python中有時候我們需要呼叫另一.py檔案中的方法或者類。如果該.py檔案與當前檔案位於同一目錄下那麼問題非常容易解決。如果兩個.py檔案位於不同的目錄下就比較麻煩。

下面分別介紹如下:

1.兩個.py檔案位於同一目錄下:

假設兩個.py檔案分別為test1.py,   test2.py。現在在test2中想要呼叫test1.py中的fun1函式。

那麼可以直接在test2中匯入test1模組,**為:

import test1

test1.fun1() #呼叫

#或著直接匯入所需函式

from test1 import fun1

fun1()#注意此時可以直接以函式名加括號的方式呼叫

2.兩個.py檔案位於不同的目錄下:

假設兩個.py檔案分別為test1.py,   test2.py,位於不同的目錄。現在在test2中想要呼叫test1.py中的fun1函式。

首先要確保test1.py檔案所在的目錄,在python的搜尋路徑中,這時候需要新增環境變數。因為在匯入檔案的時候,python只搜尋當前指令碼所在的目錄,載入(entry-point)入

口指令碼執行目錄和sys.path中包含的路徑。

新增環境變數的命令:

#python3自動載入sys模組

sys.path.insert(0, 'test1.py所在絕對路徑')

#或者使用

然後就是以檔案包的形式匯入,這時候需要在test2.py檔案所在目錄下建立__init__.py檔案,檔案可以為空。該檔案的主要作用是初始化python包。如果目錄下面包含了該文

件,python直譯器就會將該目錄當做乙個包,下一步就可以使用import語句在別的.py指令碼中引用該目錄下的檔案。

如果建立的__init__.py為空則可以這樣匯入:

from 包名.test1 import fun1

如果在建立的__init__.py的檔案中已經將test1匯入包,方法是在__init__.py檔案中新增語句

from test1 import fun1

這樣就可以直接在包的水平直接匯入函式

from 包名 import fun1
匯入後,呼叫函式方式與1中相同。

python 跨目錄呼叫檔案

如果呼叫檔案與被呼叫檔案在同乙個目錄下,則可以非常方便的呼叫。如果呼叫檔案與被呼叫檔案不在同乙個目錄下,如下圖結構所示,應該如何呼叫呢?project1 module1 function1.py test test.py如果test.py想要呼叫function1.py,可以使用絕對路徑。impor...

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