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時執行的**,當然也可以留空就可以.
import
home.a.b
3).
from
home.a.b
import
*
前提 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...