Python 獲取項目根路徑的代碼
在 運行,調(diào)試,打包成exe 三個不同場景下獲取跟路徑,用于解決獲取資源文件絕對路徑問題。
工具類代碼如下:
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ù)不同場景獲取根目錄
if len(debug_vars) > 0:
"""當(dāng)前為debug運行時"""
self.rootPath = sys.path[2]
elif getattr(sys, 'frozen', False):
"""當(dāng)前為exe運行時"""
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__':
"""測試"""
# path = PathUtil.getPathFromResources("context.ini")
print(PathUtil.rootPath)
知識點擴展:Python獲取當(dāng)前目錄和上級目錄
獲取當(dāng)前文件的路徑:
import os
print '***獲取當(dāng)前目錄***'
print os.getcwd()
print os.path.abspath(os.path.dirname(__file__))
# __file__ 為當(dāng)前文件, 若果在ide中運行此行會報錯,可改為 #d = path.dirname('.')
# 但是改為.后,就是獲得當(dāng)前目錄,接著使用dirname函數(shù)訪問上級目錄
print '***獲取上級目錄***'
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 '***獲取上上級目錄***'
print os.path.abspath(os.path.join(os.getcwd(), "../.."))
總結(jié)
以上所述是小編給大家介紹的Python 獲取項目根路徑的代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
基于python3+OpenCV實現(xiàn)人臉和眼睛識別
這篇文章主要為大家詳細介紹了基于python3+OpenCV實現(xiàn)人臉和眼睛識別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09
python 實現(xiàn)圍棋游戲(純tkinter gui)
這篇文章主要介紹了python 如何實現(xiàn)圍棋游戲,幫助大家利用tkinter制作圖形界面程序,感興趣的朋友可以了解下2020-11-11
Django urls.py重構(gòu)及參數(shù)傳遞詳解
這篇文章主要介紹了Django urls.py重構(gòu)及參數(shù)傳遞詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
Python 檢查數(shù)組元素是否存在類似PHP isset()方法
isset方法來檢查數(shù)組元素是否存在,在Python中無對應(yīng)函數(shù),在Python中一般可以通過異常來處理數(shù)組元素不存在的情況,而無須事先檢查2014-10-10
python實現(xiàn)mask矩陣示例(根據(jù)列表所給元素)
這篇文章主要介紹了python實現(xiàn)mask矩陣示例(根據(jù)列表所給元素),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

