1. 程式人生 > >Python模塊詳解以及import本質,獲得文件當前路徑os.path.abspath,獲得文件的父目錄os.path.dirname,放到系統變量的第一位sys.path.insert(0,x)

Python模塊詳解以及import本質,獲得文件當前路徑os.path.abspath,獲得文件的父目錄os.path.dirname,放到系統變量的第一位sys.path.insert(0,x)

alt 獲取 詳解 nbsp spa 絕對路徑 解釋 系統 port

模塊介紹

1、定義:

模塊:用來從邏輯上組織python代碼(變量,函數,類,邏輯:實現一個功能),本質就是.py結尾的python文件(文件名:test.py,對應的模塊名:test)

包:用來從邏輯上組織模塊的,本質就是一個目錄(必須帶有一個__init__.py文件)

2、導入方法:

import module_name

引用腳本裏的函數用方法module_name.logger()

技術分享

技術分享

import module1_name,module2_name

導入多個腳本模塊

from module_alex import *

這裏相當於導入module_alex腳本文件裏的所有代碼

from module_alex import m1,m2,m3

from module_alex import logger as logger_alex

這裏相當於導入module_alex腳本裏的logger函數,並給它起別名為logger_alex,註意這裏的 logger不能寫成 logger()

用from的方法,這個想再引用module_alex裏的函數或者變量,直接logger()就OK了。如果有別名那麽直接執行logger_alex()

3、import本質(把模塊的所有代碼解釋了一遍,賦值給module_alex)

技術分享

from module_alex import name的本質(把name這個代碼復制一份到當前腳本)

技術分享

import本質(路徑搜索和搜索路徑)

導入模塊的本質就是把python文件解釋一遍,然後賦值給模塊名,(import test 相當於 test=‘test.py all code‘)

導入模塊的過程:找文件,找文件所在的路徑,找sys.path

技術分享

所以 我們需要把當前腳本的絕對路徑的父父路徑,加到sys.path裏去,這樣就可以找到其他模塊。

所以我們引入一個新模塊os,os.path.abspath(__file__)可以獲得當前模塊的絕對路徑

技術分享

然後再通過os.path.dirname可以獲取到除文件名以外的路徑,我們使用2次,就可以得到父父級目錄,現在我們獲得了父父級目錄,我們把目錄加到 sys.path去,但是我們註意我們需要把這個目錄放到列表sys.path的第一個位置去~!

技術分享

導入包的本質就是執行該包下面的__init__.py文件

技術分享

技術分享

4、導入優化

技術分享

Python模塊詳解以及import本質,獲得文件當前路徑os.path.abspath,獲得文件的父目錄os.path.dirname,放到系統變量的第一位sys.path.insert(0,x)