1. 程式人生 > >python中os.path以及sys.path模組簡介

python中os.path以及sys.path模組簡介

1.sys.path —— 動態地改變Python搜尋路徑

如果python中匯入的package或module不在環境變數PATH中,那麼可以使用sys.path將要匯入的package或module加入到PATH環境變數中。

import sys
sys.path.append(’引用模組的地址')

#或者
import sys
sys.path.insert(0, '引用模組的地址')
      sys.path是個列表,所以在末尾新增目錄是很容易的,用sys.path.append就行了。當這個append執行完之後,新目錄即時起效,以後的每次import操作都可能會檢查這個目錄。如同解決方案所示,可以選擇用sys.path.insert(0,…)這樣新新增的目錄會優先於sys.path中的其他目錄被import檢查。

      即使sys.path中存在重複,或者一個不存在的目錄被不小心新增進來,也沒什麼大不了,Python的import語句非常聰明,它會自己應付這類問題。但是,如果每次import時都發生這種錯誤(比如,重複的不成功搜尋,作業系統提示的需要進一步處理的錯誤),我們會被迫付出一點小小的效能代價。

      程式向sys.path新增的目錄只會在此程式的生命週期之內有效,其他所有的對sys.path的動態操作也是如此。

2.python中獲取當前工作目錄

import os
curDir = os.getcwd()

備註:os.getcwd()返回的是執行命令時所在的目錄,而不是指令碼本身所在的目錄

3.os.path模組

os.path.abspath(path)  #返回絕對路徑
os.path.split(path     #將path分割成目錄和檔名二元組返回
os.path.dirname(path)  #返回path的目錄。其實就是os.path.split(path)的第一個元素
os.path.basename(path) #返回path最後的檔名
os.path.exists(path)   #如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)    #如果path是絕對路徑,返回True
os.path.isfile(path)   #如果path是一個存在的檔案,返回True。否則返回False
os.path.isdir(path)    #如果path是一個存在的目錄,則返回True。否則返回False
os.path.getatime(path) #返回path所指向的檔案或者目錄的最後存取時間
os.path.getmtime(path) #返回path所指向的檔案或者目錄的最後修改時間 
s.path.join(path1[, path2[, ...]])  #將多個路徑組合後返回,第一個絕對路徑之前的引數將被忽略。
>>> os.path.join('c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
>>> os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv')
'c:\\csv\\test.csv'
>>> os.path.join('/home/aa','/home/aa/bb','/home/aa/bb/c')
'/home/aa/bb/c'