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读写Excel文件方法介绍
Nov 22 Python
Python数据分析之双色球统计单个红和蓝球哪个比例高的方法
Feb 03 Python
Python中return self的用法详解
Jul 27 Python
Python import与from import使用及区别介绍
Sep 06 Python
wxPython实现列表增删改查功能
Nov 19 Python
python 实现矩阵按对角线打印
Nov 29 Python
浅谈python输出列表元素的所有排列形式
Feb 26 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
基于python纯函数实现井字棋游戏
May 27 Python
Python3创建Django项目的几种方法(3种)
Jun 03 Python
Python编程中Python与GIL互斥锁关系作用分析
Sep 15 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 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
FCKeditor添加自定义按钮
2008/03/27 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
修改file按钮的默认样式实现代码
2013/04/23 Javascript
Javascript基础教程之JavaScript语法
2015/01/18 Javascript
JS实现的文字与图片定时切换效果代码
2015/10/06 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
jquery+css实现简单的图片轮播效果
2017/08/07 jQuery
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
2019/05/26 Javascript
JavaScript setTimeout()基本用法有哪些
2020/11/04 Javascript
js前端传json后台接收‘‘被转为quot的问题解决
2020/11/12 Javascript
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
python实现搜索文本文件内容脚本
2018/06/22 Python
Django跨域请求CSRF的方法示例
2018/11/11 Python
Python中turtle库的使用实例
2019/09/09 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
2020/04/16 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
介绍一下sql server的安全性
2014/08/10 面试题
abstract是什么意思
2012/02/12 面试题
工业设计专业推荐信
2013/10/29 职场文书
就业自荐书
2013/12/05 职场文书
旅游管理毕业生自荐信范文
2014/03/19 职场文书
六一儿童节主持词
2014/03/21 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
质检员岗位职责
2015/02/03 职场文书
名人传读书笔记
2015/06/26 职场文书
建房合同协议书
2016/03/21 职场文书
2019班干部竞选演讲稿范本!
2019/07/08 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
如何自己动手写SQL执行引擎
2021/06/02 MySQL
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang
Python实现为PDF去除水印的示例代码
2022/04/03 Python