python import模組方法

2021-09-01 00:03:23 字數 2364 閱讀 5908

python語言中import的使用很簡單,直接使用import module_name語句匯入即可。這裡我主要寫一下"import"的本質。

模組(module):用來從邏輯(實現乙個功能)上組織python**(變數、函式、類),本質就是*.py檔案。檔案是物理上組織方式"module_name.py",模組是邏輯上組織方式"module_name"。

包(package):定義了乙個由模組和子包組成的python應用程式執行環境,本質就是乙個有層次的檔案目錄結構(必須帶有乙個__init__.py檔案)。

"import module_name" 的本質是將"module_name.py"中的全部**載入到記憶體並賦值給與模組同名的變數寫在當前檔案中,這個變數的型別是'module';"from module_name import name" 的本質是匯入指定的變數或方法到當前檔案中。

"import package_name"匯入包的本質就是執行該包下的__init__.py檔案,在執行檔案後,會在"package_name"目錄下生成乙個"__pycache__ / __init__.cpython-35.pyc" 檔案。

在模組匯入的時候,預設現在當前目錄下查詢,然後再在系統中查詢。系統查詢的範圍是:sys.path下的所有路徑,按順序查詢。

有乙個資料夾/home/a,  裡面有個模組叫b.py,  我怎麼把他import到程式裡?

1).2).

在目錄裡面增加__init__.py檔案,裡面可以寫import時執行的**,當然也可以留空就可以.

importhome.a.b

3). 

fromhome.a.bimport*

前提 home、a中都包括__init__.py

一、同級目錄下的呼叫

程式結構如下:

-- src

|-- mod1.py

|-- test1.py

若在程式test1.py中匯入模組mod1, 則直接使用

import mod1

或from mod1 import *;

二、呼叫子目錄下的模組

程式結構如下:

-- src

|-- mod1.py

|-- lib

|    |-- mod2.py

|-- test1.py

這時看到test1.py和lib目錄(即mod2.py的父級目錄),如果想在程式test1.py中匯入模組mod2.py ,可以在lib件夾中建立空檔案__init__.py檔案(也可以在該檔案中自定義輸出模組介面),然後使用:

from lib import mod2

或import lib.mod2

三、呼叫上級目錄下的檔案

程式結構如下:

-- src

|-- mod1.py

|-- lib

|    |-- mod2.py

|-- sub

|    |-- test2.py

這裡想要實現test2.py呼叫mod1.py和mod2.py ,做法是我們先跳到src目錄下面,直接可以呼叫mod1,然後在lib上當下建乙個空檔案__init__.py ,就可以像第二步呼叫子目錄下的模組一樣,通過from lib import mod2進行呼叫了。具體**如下:

import sys

import os

# 得到當前根目錄

o_path = os.getcwd() # 返回當前工作目錄

該函式不需要傳遞引數,它返回當前的目錄。需要說明的是,當前目錄並不是指指令碼所在的目錄,而是所執行指令碼的目錄。

os.getcwd()獲取的當前最外層呼叫的指令碼路徑,即getpath所在的目錄也可描述為起始的執行目錄,a呼叫b,起始的是a,那麼獲取的就是a所在的目錄路徑。(即被a呼叫執行了,返回a指令碼的路徑)

os.path.dirname(os.path.abspath(__file__))返回該檔案絕對路徑——(即返回了路徑,不含檔名.字尾)

os.path.abspath(path)  返回path規範化的絕對路徑。 

os.path.dirname():去掉指令碼的檔名,返回目錄。

os.path.dirname(os,path.realname(__file__)):指的是,獲得你剛才所引用的模組 所在的絕對路徑,__file__為內建屬性。

1內建模組

可以通過 "dir(__builtins__)" 檢視python中的內建函式

非內建函式需要使用"import"匯入。python中的模組檔案在"安裝路徑\python\python35\lib"目錄下。

2第三方模組

python import模組方法

python包含子目錄中的模組方法比較簡單,關鍵是能夠在sys.path裡面找到通向模組檔案的路徑。下面將具體介紹幾種常用情況 1 主程式與模組程式在同一目錄下 如下面程式結構 src mod1.py test1.py 若在程式test1.py中匯入模組mod1,則直接使用importmod1或fr...

python import匯入模組

常規匯入 regular imports 使用from語句匯入 相對匯入 relative imports 可選匯入 optional imports 本地匯入 local imports 常規匯入 常規匯入應該是最常使用的匯入方式,大概是這樣的 import sys你只需要使用import一詞,然...

python import匯入現有模組

主要分三種情況 1 主程式與模組程式在同一目錄下 如下面程式結構 src mod1.py test1.py 若在程式test1.py中匯入模組mod1,則直接使用importmod1或from mod1 import 2 主程式所在目錄是模組所在目錄的父 或祖輩 目錄 如下面程式結構 src mod...