python匯入本 子目錄模組

2021-07-15 23:23:45 字數 1219 閱讀 6385

1. python中的模組

python中,每個py檔案被稱之為模組,每個具有__init__.py檔案的目錄被稱為包。只要模組或者包所在的目錄在sys.path中,就可以使用import 模組或import 包來使用。

上面這段描述最重要的兩個點:

2. 匯入本目錄下的模組(同一目錄)

對於同一目錄下的兩個檔案a.py和b.py。

a.py:

def

a_print

() :

print(" i am a ")

如果要想在b.py中用a模組中的a_print()函式,則一般我們直接寫成:

from a import a_print

....

a_print()

....

事實上,我也一直這麼用。

但是這種用法有乙個問題,需要就是b.py檔案本身run。換句話說,如果有不在同一目錄下的檔案main.py通過匯入b模組來引用a模組中的函式,是不可行的。b.py中必須寫成:

from .a import a_print
加上【.】的意思就是相對路徑匯入。關於這一點,stackoverflow中有個問題下舉例解釋的非常清楚,我就不再搬運了,傳送門

(3. 匯入子目錄下的模組

雖然題目是子目錄,其實說白了就是不同目錄下的其他模組,也就是py檔案。根據前面所述,這條路徑必須是在sys路徑。

因為很簡單,python import就是在sys目錄中查詢模組並匯入。

此處還需注意,如果我們直接這樣寫:

那麼就會出現上述第二條的那種情況,因為對於執行不同的指令碼檔案,相對路徑是不一樣的,也就是說在其他目錄中匯入這個檔案時,子目錄下模組的相對路徑就不是」./」了。

通常如下處理:

current_path = os.path.dirname(__file__)

module_path = os.path.join(current_path, 'subdir')

mod = __import__('modules', globals(), locals())

然後就是正常的匯入了(不用加路徑,直接import 模組名字)

python建立子目錄並在子目錄下建立檔案

import os 首先判斷當前工作目錄下是否存在目錄machine learning ifnot os.path.isdir machine learning 不存在的話就建立子目錄machine learning 因為父目錄存在,所有這裡用mkdir也可以 os.makedirs machine...

Python指令碼訪問子目錄

d work my program.py src dir os.path.abspath os.path.dirname file print src dir sub dir os.path.join src dir,sub dir print sub dir 輸出 d work d work su...

python 子目錄的呼叫

主要是論述python中的呼叫父目錄或者子目錄的情況 有如下圖示 如上圖所示在parent dir目錄中有乙個py檔案test.py和兩個資料夾,兩個資料夾中有各自有相關的檔案。case1 呼叫父目錄的檔案 如在a.py檔案中呼叫test.py檔案。需要在在檔案頭部加入如下 import sys i...