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跳出循环语句continue与break的区别
Aug 25 Python
python判断字符串是否包含子字符串的方法
Mar 24 Python
安装Python的web.py框架并从hello world开始编程
Apr 25 Python
python实现求解列表中元素的排列和组合问题
Mar 15 Python
Python 爬虫之Beautiful Soup模块使用指南
Jul 05 Python
Python打包方法Pyinstaller的使用
Oct 09 Python
Python实现繁?转为简体的方法示例
Dec 18 Python
详解Python字符串切片
May 20 Python
解决ROC曲线画出来只有一个点的问题
Feb 28 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
Django Paginator分页器的使用示例
Jun 23 Python
python之django路由和视图案例教程
Jul 26 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集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
日期 时间js控件
2009/05/07 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
2013/07/30 Javascript
javascript中expression的用法整理
2014/05/13 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
JavaScript jquery及AJAX小结
2016/01/24 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
实例解析Array和String方法
2016/12/14 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
2017/05/26 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
JS实现静态页面搜索并高亮显示功能完整示例
2017/09/19 Javascript
Vue父子组建的简单通信之控制开关Switch的实现
2018/06/04 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
JavaScript中遍历的十种方法总结
2020/12/15 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
Python sorted对list和dict排序
2020/06/09 Python
优秀大专毕业生求职信
2014/08/04 职场文书
小学生运动会报道稿
2014/09/12 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
质量负责人岗位职责
2015/02/15 职场文书
求职信格式范文
2015/03/19 职场文书
2015年商场工作总结
2015/04/27 职场文书
实习单位意见
2015/06/04 职场文书
导游词之千岛湖
2019/09/23 职场文书
Python 数据可视化之Seaborn详解
2021/11/02 Python
Springboot-cli 开发脚手架,权限认证,附demo演示
2022/04/28 Java/Android