python 相對路徑和絕對路徑的區別


一,Python中獲得當前目錄和上級目錄

獲取當前文件的路徑:

from os import path   
d = path.dirname(__file__)  #返回當前文件所在的目錄    
# __file__ 為當前文件, 若果在ide中運行此行會報錯,可改為  #d = path.dirname('.')

獲得某個路徑的父級目錄:( 強烈建議使用該方法!可以逐層獲取到根目錄的地址,例如D:/)

parent_path = os.path.dirname(d) #獲得d所在的目錄,即d的父級目錄  
parent_path  = os.path.dirname(parent_path) ##獲得parent_path所在的目錄即parent_path的父級目錄

獲得規范的絕對路徑:

abspath = path.abspath(d) #返回d所在目錄規范的絕對路徑

 

二,路徑拼接 

Python3 os.path.join()用法

功能描述:os.path.join()函數用於路徑拼接文件路徑。

語法:os.path.join(path1 [,path2 [,...]])

os.path.join()函數中可以傳入多個路徑:

1.會從第一個以“/”開頭的參數開始拼接,之前的參數全部丟棄。

2.優先判定上一種情況。若無,則如果出現“./”開頭的參數,會從“./”開頭的參數的上一個參數開始拼接。

 

 

三,蟒蛇里面的相對路徑與絕對路徑

如例程所示:

os.path.abspath則則( '')可以獲取當前腳本所在的路徑,當我們需要在該目錄下生成一些文件時,就可以用此命令獲取腳本路徑。

開放( 'test1.txt的的', 'R')以只讀的形式打開該腳本所在路徑下的名為test1.txt的的文件文檔。

開放('E:/pythonMixture/test2.txt','R')以只讀形式打開E:/ pythonMixture路徑下的的test2.txt文檔

由於字符“\”為蟒蛇中的字符串轉義字符,所以:

open('E:/pythonMixture/test2.txt','r')這句等價於open('E:\\ pythonMixture \\ test2.txt','r')
--------- ----

 

四,實戰截圖

目的:為了驗證E:/ CRMAutoTest001 \ pre_infoChannel.csv E:\ CRMAutoTest001 \ others \上層的測試文檔

這兩各包含“/”和“\”的地址組合,都是正確的路徑。    

所以后續遇到這兩種寫法,都是正確的。

 

 

 

再着重記憶一遍,代碼第16行,當文件與腳本不在同一路徑,絕對路徑的規范寫法:E:/pythonMixture/test2.txt

 

 

 

五、小結:

1.  os.path.join()函數用於路徑拼接文件路徑,這是主流常用的。 方法內部代碼封裝的完美,只要傳入正確的兩個路徑即可。

2.按照MVC設計結構,相同功能的文件要存放在同個文件夾,當項目大了模塊多時就會很好維護。

    比如數據源文件,配置文件,公共方法文件,模塊控制層文件等。

    現在從事的項目,就不進行相對路徑和絕對路徑的優化,等新項目開始,再重新涉及開發。

3.因為項目的絕對路徑都是以E盤根目錄開始的,所以測試組小伙伴們從gitlab下載了倉庫后,也要把倉庫文件復制到E盤根目錄,避免報錯。

 4. 后期要實現的效果,是:全都使用相對路徑來配置各類地址。確保所有人從gitlab下載好的倉庫文件,安裝在哪個盤哪個位置都不會報地址錯誤(這也是為什么使用相對路徑的最根本原因。)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM