Python 获取项目根路径的代码


Posted in Python onSeptember 27, 2019

在 运行,调试,打包成exe 三个不同场景下获取跟路径,用于解决获取资源文件绝对路径问题。

工具类代码如下:

import sys
import os
class pathutil(object):
  """路径处理工具类"""
  def __init__(self):
    # 判断调试模式
    debug_vars = dict((a, b) for a, b in os.environ.items()
             if a.find('IPYTHONENABLE') >= 0)
    # 根据不同场景获取根目录
    if len(debug_vars) > 0:
      """当前为debug运行时"""
      self.rootPath = sys.path[2]
    elif getattr(sys, 'frozen', False):
      """当前为exe运行时"""
      self.rootPath = os.getcwd()
    else:
      """正常执行"""
      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获取当前目录和上级目录

获取当前文件的路径:

import os

print '***获取当前目录***'
print os.getcwd()
print os.path.abspath(os.path.dirname(__file__))
# __file__ 为当前文件, 若果在ide中运行此行会报错,可改为 #d = path.dirname('.') 
# 但是改为.后,就是获得当前目录,接着使用dirname函数访问上级目录
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(), "../.."))

总结

以上所述是小编给大家介绍的Python 获取项目根路径的代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
python中将字典转换成其json字符串
Jul 16 Python
用Python编写一个简单的俄罗斯方块游戏的教程
Apr 03 Python
分享一下如何编写高效且优雅的 Python 代码
Sep 07 Python
Python入门必须知道的11个知识点
Mar 21 Python
django利用request id便于定位及给日志加上request_id
Aug 26 Python
Python实现高斯函数的三维显示方法
Dec 29 Python
Python按钮的响应事件详解
Mar 04 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
python list数据等间隔抽取并新建list存储的例子
Nov 27 Python
Django获取model中的字段名和字段的verbose_name方式
May 19 Python
Python如何爬取qq音乐歌词到本地
Jun 01 Python
Python解析微信dat文件的方法
Nov 30 Python
Python Pandas对缺失值的处理方法
Sep 27 #Python
Python 可变类型和不可变类型及引用过程解析
Sep 27 #Python
Python操作qml对象过程详解
Sep 26 #Python
python 字典的打印实现
Sep 26 #Python
手把手教你pycharm专业版安装破解教程(linux版)
Sep 26 #Python
QML使用Python的函数过程解析
Sep 26 #Python
python 怎样将dataframe中的字符串日期转化为日期的方法
Sep 26 #Python
You might like
百万级别知乎用户数据抓取与分析之PHP开发
2015/09/28 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
js复制网页内容并兼容各主流浏览器的代码
2013/12/17 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
jQuery toggle 代替方法
2016/03/22 Javascript
jQuery短信验证倒计时功能实现方法详解
2016/05/25 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
Bootstrap table简单使用总结
2017/02/15 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
2017/07/08 jQuery
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
[01:00:30]TFT vs VGJ.T Supermajor 败者组 BO3 第一场 6.5
2018/06/06 DOTA
python实现的简单猜数字游戏
2015/04/04 Python
Python里disconnect UDP套接字的方法
2015/04/23 Python
使用Python绘制图表大全总结
2017/02/11 Python
python机器学习之神经网络(二)
2017/12/20 Python
python创建n行m列数组示例
2019/12/02 Python
python每5分钟从kafka中提取数据的例子
2019/12/23 Python
Python-openCV读RGB通道图实例
2020/01/17 Python
python range实例用法分享
2020/02/06 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
10分钟理解CSS3 Grid布局
2018/12/20 HTML / CSS
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
New delete 与malloc free 的联系与区别
2013/02/04 面试题
考博自荐信
2013/10/25 职场文书
应届生法律顾问求职信
2013/11/19 职场文书
试用期自我评价范文
2015/03/10 职场文书
python引入其他文件夹下的py文件具体方法
2021/05/23 Python