网上的方法很多,我分享一下我常用的方法,核心代码非常简单:

import os
import sys

# 获得根路径
def getRootPath():
    # 获取文件目录
    curPath = os.path.abspath(os.path.dirname(__file__))
    # 获取项目根路径,内容为当前项目的名字
    rootPath = curPath[:curPath.find("项目名\\")+len("项目名\\")]
    return  rootPath

# 从根目录下开始获取其他路径
def getOtherPath(abspath):
    rootPath = getRootPath()
    dataPath = os.path.abspath(rootPath + abspath);
    return dataPath

# 获得路径,当前文件所在路径
# resource_path方法说明了如何使用sys._MEIPASS变量来访问临时文件夹中的资源。我是在打包exe的时候使用了该功能
def resource_path(relative_path):
    # 是否Bundle Resource
    if getattr(sys, 'frozen', False):
        # running in a bundle
        base_path = sys._MEIPASS
        print('true',base_path)
    else:
        # running live
        base_path = os.path.abspath(".")
        print('false ',base_path)
    print(os.path.join(base_path, relative_path))
    return os.path.join(base_path, relative_path)
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐