Python 獲取項(xiàng)目根路徑的代碼
在 運(yùn)行,調(diào)試,打包成exe 三個(gè)不同場(chǎng)景下獲取跟路徑,用于解決獲取資源文件絕對(duì)路徑問題。
工具類代碼如下:
import sys import os class pathutil(object): """路徑處理工具類""" def __init__(self): # 判斷調(diào)試模式 debug_vars = dict((a, b) for a, b in os.environ.items() if a.find('IPYTHONENABLE') >= 0) # 根據(jù)不同場(chǎng)景獲取根目錄 if len(debug_vars) > 0: """當(dāng)前為debug運(yùn)行時(shí)""" self.rootPath = sys.path[2] elif getattr(sys, 'frozen', False): """當(dāng)前為exe運(yùn)行時(shí)""" self.rootPath = os.getcwd() else: """正常執(zhí)行""" self.rootPath = sys.path[1] # 替換斜杠 self.rootPath = self.rootPath.replace("\\", "/") def getPathFromResources(self, fileName): """按照文件名拼接資源文件路徑""" filePath = "%s/resources/%s" % (self.rootPath, fileName) return filePath PathUtil = pathutil() if __name__ == '__main__': """測(cè)試""" # path = PathUtil.getPathFromResources("context.ini") print(PathUtil.rootPath)
知識(shí)點(diǎn)擴(kuò)展:Python獲取當(dāng)前目錄和上級(jí)目錄
獲取當(dāng)前文件的路徑:
import os print '***獲取當(dāng)前目錄***' print os.getcwd() print os.path.abspath(os.path.dirname(__file__)) # __file__ 為當(dāng)前文件, 若果在ide中運(yùn)行此行會(huì)報(bào)錯(cuò),可改為 #d = path.dirname('.') # 但是改為.后,就是獲得當(dāng)前目錄,接著使用dirname函數(shù)訪問上級(jí)目錄 print '***獲取上級(jí)目錄***' print os.path.abspath(os.path.dirname(os.path.dirname(__file__))) print os.path.abspath(os.path.dirname(os.getcwd())) print os.path.abspath(os.path.join(os.getcwd(), "..")) print '***獲取上上級(jí)目錄***' print os.path.abspath(os.path.join(os.getcwd(), "../.."))
總結(jié)
以上所述是小編給大家介紹的Python 獲取項(xiàng)目根路徑的代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Python快速實(shí)現(xiàn)一個(gè)線程池的示例代碼
當(dāng)有多個(gè)?IO?密集型的任務(wù)要被處理時(shí),我們自然而然會(huì)想到多線程。而線程池的實(shí)現(xiàn)也很簡(jiǎn)單,因?yàn)?Python?提供了一個(gè)標(biāo)準(zhǔn)庫?concurrent.futures,已經(jīng)內(nèi)置了對(duì)線程池的支持。所以本篇文章,我們就來詳細(xì)介紹一下該模塊的用法2022-07-07python實(shí)現(xiàn)ROA算子邊緣檢測(cè)算法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)ROA算子邊緣檢測(cè)算法,以光學(xué)圖像為例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04python實(shí)現(xiàn)公司年會(huì)抽獎(jiǎng)程序
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)公司年會(huì)抽獎(jiǎng)程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01用Python實(shí)現(xiàn)校園通知更新提醒功能
今天小編就為大家分享一篇用Python實(shí)現(xiàn)校園通知更新提醒功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11python爬取網(wǎng)頁轉(zhuǎn)換為PDF文件
這篇文章主要為大家詳細(xì)介紹了python爬取網(wǎng)頁轉(zhuǎn)換為PDF文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06關(guān)于python的bottle框架跨域請(qǐng)求報(bào)錯(cuò)問題的處理方法
這篇文章主要介紹了關(guān)于python的bottle框架跨域請(qǐng)求報(bào)錯(cuò)問題的處理方法,需要的朋友可以參考下2017-03-03python生成指定長(zhǎng)度的隨機(jī)數(shù)密碼
這篇文章主要介紹了python生成指定長(zhǎng)度的隨機(jī)密碼示例,密碼使用數(shù)字和字母組合,大家參考使用吧2014-01-01Win10下python 2.7.13 安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了Win10下python 2.7.13 安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09