相對路徑和絕對路徑的概念python
絕對路徑就是文件的真正存在的路徑,是指從硬盤的根目錄(盤符)開始,進行一級級目錄指向文件。
相對路徑就是以當前文件爲基準進行一級級目錄指向被引用的資源文件。 app
如下是經常使用的表示當前目錄和當前目錄的父級目錄的標識符
../ 表示當前文件所在的目錄的上一級目錄
./ 表示當前文件所在的目錄(能夠省略)
/ 表示當前站點的根目錄(域名映射的硬盤目錄)
在Python中能夠驗證一下上述的標識方法:測試
測試的目錄結構:
spa
三、 再瞭解一下Python中sys.path的使用.net
sys.path是python的搜索模塊的路徑集,是一個list,以下:rest
sys.path.append(‘你的模塊的名稱’)code
sys.path.insert(0,’模塊的名稱’)blog
添加相關的路徑,但在退出python環境後本身添加的路徑就會自動消失!
代碼中的實現以下:ip
有一個文件夾/home/a, 裏面有個模塊叫b.py, 我怎麼把他import到程序裏?element
方法一: (屬於剛開始分析的代碼裏第一種狀況)
import sys;
sys.path.append(「/home/a/」)
import b
方法二:
在目錄裏面增長__init__.py文件,裏面能夠寫import時執行的代碼,固然也能夠留空就能夠.
import home.a.b
方法三:
from home.a.b import *
前提 home、a中都包括__init__.py 即:要導入的文件的當前目錄和父目錄都要有init.py文件
下面將具體介紹幾種經常使用狀況:
(1)主程序與模塊程序在同一目錄下:
以下面程序結構:
– src
|– mod1.py
|– test1.py
若在程序test1.py中導入模塊mod1, 則直接使用import mod1
(2)主程序所在目錄是模塊所在目錄的父(或祖輩)目錄
以下面程序結構:
– src
|– mod1.py
|– mod2
| – mod2.py
– test1.py
若在程序test1.py中導入模塊mod2, 須要在mod2文件夾中創建空文件__init__.py文件,而後使用 import mod2.mod2.
(3)主程序導入上層目錄中模塊或其餘目錄(平級)下的模塊
以下面程序結構:
– src
|– mod1.py
|– mod2
|– mod2.py
|– sub
| – test2.py
– test1.py
若在程序test2.py中導入模塊mod1.py和mod2.py。首先須要在mod2下創建__init__.py文件(同(2)),src下沒必要創建該文件。而後調用方式以下:
下面程序執行方式均在程序文件所在目錄下執行,如test2.py是在cd sub;以後執行python test2.py
而test1.py是在cd src;以後執行python test1.py; 不保證在src目錄下執行python sub/test2.py成功。
(4)從(3)能夠看出,導入模塊關鍵是可以根據sys.path環境變量的值,找到具體模塊的路徑。這裏僅介紹上面三種簡單狀況。