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生成指定长度的随机数密码
Jan 23 Python
Python基于更相减损术实现求解最大公约数的方法
Apr 04 Python
django 环境变量配置过程详解
Aug 06 Python
python实现对图片进行旋转,放缩,裁剪的功能
Aug 07 Python
Python数据分析模块pandas用法详解
Sep 04 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
python使用pip安装SciPy、SymPy、matplotlib教程
Nov 20 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 Python
Python Django搭建文件下载服务器的实现
May 10 Python
python如何为list实现find方法
May 30 Python
Python绘制散点图之可视化神器pyecharts
Jul 07 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学习教程之第1天
2008/06/15 PHP
PHP积分兑换接口实例
2015/02/09 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
PHP MVC框架路由学习笔记
2016/03/02 PHP
javascript实现避免页面按钮重复提交
2015/01/08 Javascript
JavaScript File API实现文件上传预览
2016/02/02 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
原生JS实现的轮播图功能详解
2018/08/06 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
2019/11/05 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
使用vant的地域控件追加全部选项
2020/11/03 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Python的面向对象编程方式学习笔记
2016/07/12 Python
opencv改变imshow窗口大小,窗口位置的方法
2018/04/02 Python
Python3使用turtle绘制超立方体图形示例
2018/06/19 Python
详解pytorch 0.4.0迁移指南
2019/06/16 Python
Python输出指定字符串的方法
2020/02/06 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
IRO美国官网:法国服装品牌
2018/03/06 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
施工资料员岗位职责
2014/01/06 职场文书
材料会计岗位职责
2014/03/06 职场文书
4S店售后客服自我评价
2014/04/09 职场文书
物业公司的岗位任命书
2014/06/06 职场文书
领导干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年局领导班子自身建设情况汇报
2014/11/21 职场文书
颐和园导游词400字
2015/01/30 职场文书
2015年双拥工作总结
2015/04/08 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis
TypeScript中条件类型精读与实践记录
2021/10/05 Javascript
浅谈Python中对象是如何被调用的
2022/04/06 Python