Python os.path, sys.path
阿新 • • 發佈:2018-12-10
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'