Python 獲取項(xiàng)目根路徑的代碼
在 運(yùn)行,調(diào)試,打包成exe 三個(gè)不同場(chǎng)景下獲取跟路徑,用于解決獲取資源文件絕對(duì)路徑問(wèn)題。
工具類(lèi)代碼如下:
import sys
import os
class pathutil(object):
"""路徑處理工具類(lèi)"""
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ù)訪問(wèn)上級(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ì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- Python使用os.listdir()和os.walk()獲取文件路徑與文件下所有目錄的方法
- python獲取程序執(zhí)行文件路徑的方法(推薦)
- python3中獲取文件當(dāng)前絕對(duì)路徑的兩種方法
- python獲取當(dāng)前目錄路徑和上級(jí)路徑的實(shí)例
- python獲取文件路徑、文件名、后綴名的實(shí)例
- Python獲取當(dāng)前路徑實(shí)現(xiàn)代碼
- Python實(shí)現(xiàn)通過(guò)文件路徑獲取文件hash值的方法
- python獲取當(dāng)前用戶(hù)的主目錄路徑方法(推薦)
- python獲取指定路徑下所有指定后綴文件的方法
相關(guān)文章
基于python3+OpenCV實(shí)現(xiàn)人臉和眼睛識(shí)別
這篇文章主要為大家詳細(xì)介紹了基于python3+OpenCV實(shí)現(xiàn)人臉和眼睛識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
python 實(shí)現(xiàn)圍棋游戲(純tkinter gui)
這篇文章主要介紹了python 如何實(shí)現(xiàn)圍棋游戲,幫助大家利用tkinter制作圖形界面程序,感興趣的朋友可以了解下2020-11-11
Django urls.py重構(gòu)及參數(shù)傳遞詳解
這篇文章主要介紹了Django urls.py重構(gòu)及參數(shù)傳遞詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Python中使用語(yǔ)句導(dǎo)入模塊或包的機(jī)制研究
這篇文章主要介紹了Python中使用語(yǔ)句導(dǎo)入模塊或包的機(jī)制研究,同時(shí)對(duì)比了幾種導(dǎo)入包或模塊的語(yǔ)句并簡(jiǎn)要說(shuō)明了這幾種方法之間的幾點(diǎn)優(yōu)劣,需要的朋友可以參考下2015-03-03
Python 檢查數(shù)組元素是否存在類(lèi)似PHP isset()方法
isset方法來(lái)檢查數(shù)組元素是否存在,在Python中無(wú)對(duì)應(yīng)函數(shù),在Python中一般可以通過(guò)異常來(lái)處理數(shù)組元素不存在的情況,而無(wú)須事先檢查2014-10-10
python實(shí)現(xiàn)mask矩陣示例(根據(jù)列表所給元素)
這篇文章主要介紹了python實(shí)現(xiàn)mask矩陣示例(根據(jù)列表所給元素),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Python使用OpenCV實(shí)現(xiàn)虛擬縮放效果
OpenCV?徹底改變了整個(gè)圖像處理領(lǐng)域。從圖像分類(lèi)到對(duì)象檢測(cè),我們不僅可以使用?OpenCV?庫(kù)做一些很酷的事情,而且還可以構(gòu)建一流的應(yīng)用程序。本文將用OpenCV實(shí)現(xiàn)虛擬縮放,需要的可以參考一下2022-02-02

