2017/07/11 Python:os.path模塊

拋出問(wèn)題:

當(dāng)我們部署我們的代碼的時(shí)候,會(huì)遇到一種情況,之前在配置文件中所有的文件路徑都寫(xiě)成了絕對(duì)路徑,基于你個(gè)人筆記本操作系統(tǒng)的用戶路徑,這樣的話,當(dāng)更換了其他電腦的時(shí)候,這個(gè)路徑是無(wú)法復(fù)用的,所以產(chǎn)生了一個(gè)想法,利用os.path模塊獲取當(dāng)前文件所處的父目錄的絕對(duì)路徑(其實(shí)就是你項(xiàng)目根目錄的絕對(duì)路徑),然后在配置文件中只需要寫(xiě)每個(gè)需要用到的模塊的相對(duì)路徑即可,然后把父目錄的絕對(duì)路徑和各模塊的相對(duì)路徑做一次拼接,這樣就可以實(shí)現(xiàn)上述問(wèn)題的解決了~

config_file_path = os.path.split(os.path.realpath(__file__))[0] ? ?# 1:獲取當(dāng)前文件所處文件夾的絕對(duì)路徑

config_file_path = os.path.dirname(os.path.dirname(__file__)) ?#2:當(dāng)前文件父目錄的絕對(duì)路徑

config_file_path = os.path.dirname(os.path.realpath(__file__))? #3:當(dāng)前文件所處文件夾的絕對(duì)路徑,等同于第1種寫(xiě)法

例子1:

import os

BASE_DIR = os.path.dirname(os.path.dirname(__file__)) #獲取當(dāng)前文件夾的父目錄絕對(duì)路徑

print(BASE_DIR)

file_path = os.path.join(BASE_DIR,'C','Test_Data') #獲取C文件夾中的的Test_Data文件


例子2:

class GlobalParam():

def __init__(self,folder,file):

self.BASE_DIR = os.path.dirname(os.path.dirname(__file__))? #獲取當(dāng)前文件夾的父目錄絕對(duì)路徑

self.file_path = os.path.join(self.BASE_DIR,folder,file)? #獲取config文件夾中的的path_file.conf文件————截圖和日志配置文件路徑

def getParam(self,path_Section,path_NO):

#創(chuàng)建讀取配置文件的對(duì)象

cf1 = Config(self.file_path)

path = cf1.get_PATH(path_Section,path_NO)

path = self.BASE_DIR + path #將父目錄和配置文件讀取的相對(duì)路徑拼接

return path

附上上面的Conifg模塊寫(xiě)法:

import configparser

class Config:

def __init__(self,configPath):

self.configPath = configPath

def get_PATH(self,path_Section,path_NO):

cf = configparser.ConfigParser()

cf.read(self.configPath)

# path_section填寫(xiě)"PATH_YUNKU"

# 此處path_config = "path_001"以此類(lèi)推

path = cf.get(path_Section,path_NO)

return path

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容