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 map和reduce函数用法示例
Feb 26 Python
python开启多个子进程并行运行的方法
Apr 18 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
python使用Matplotlib绘制分段函数
Sep 25 Python
python匹配两个短语之间的字符实例
Dec 25 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
pyqt5中QThread在使用时出现重复emit的实例
Jun 21 Python
pyqt5与matplotlib的完美结合实例
Jun 21 Python
详解Django admin高级用法
Nov 06 Python
django 读取图片到页面实例
Mar 27 Python
基于Python的自媒体小助手---登录页面的实现代码
Jun 29 Python
python通过函数名调用函数的几种方法总结
Jun 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
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
摘自织梦CMS的HTTP文件下载类
2015/08/08 PHP
PHP中常用的三种设计模式详解【单例模式、工厂模式、观察者模式】
2019/06/14 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
JavaScript 事件对象的实现
2009/07/13 Javascript
让textarea自动调整大小的js代码
2011/04/12 Javascript
将HTMLCollection/NodeList/伪数组转换成数组的实现方法
2011/06/20 Javascript
重构Javascript代码示例(重构前后对比)
2013/01/23 Javascript
js实现俄罗斯方块小游戏分享
2014/01/31 Javascript
使用jquery解析XML的方法
2014/09/05 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
解决Layui 表格自适应高度的问题
2019/11/15 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
python简单获取数组元素个数的方法
2015/07/13 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
2017/12/14 Python
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
python实现Virginia无密钥解密
2019/03/20 Python
Django实现分页显示效果
2019/10/31 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
约瑟夫·特纳男装:Joseph Turner
2017/10/10 全球购物
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
酒店门卫岗位职责
2013/12/29 职场文书
学生会竞聘书范文
2014/03/31 职场文书
赡养老人协议书
2014/04/21 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
员工工作及收入证明
2014/10/28 职场文书
新员工辞职信范文
2015/05/12 职场文书
社区党建工作总结2015
2015/05/13 职场文书
如何使用Maxwell实时同步mysql数据
2021/04/08 MySQL