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实现tcp自动重连
Jul 02 Python
Python探索之pLSA实现代码
Oct 25 Python
使用 Python 实现微信群友统计器的思路详解
Sep 26 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
Python3获取拉勾网招聘信息的方法实例
Apr 03 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
python list转置和前后反转的例子
Aug 26 Python
对python中的*args与**kwgs的含义与作用详解
Aug 28 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
tensorflow保持每次训练结果一致的简单实现
Feb 17 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
使用Python实现NBA球员数据查询小程序功能
Nov 09 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中的cookie
2006/11/26 PHP
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
fleaphp crud操作之find函数的使用方法
2011/04/23 PHP
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
PHP中PDO事务处理操作示例
2018/05/02 PHP
javascript中的107个基础知识收集整理 推荐
2010/03/29 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
JQuery实现点击div以外的位置隐藏该div窗口
2013/09/13 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
JavaScript数组迭代器实例分析
2015/06/09 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
elementUI vue this.$confirm 和el-dialog 弹出框 移动 示例demo
2019/07/03 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
深入Python解释器理解Python中的字节码
2015/04/01 Python
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
Python使用统计函数绘制简单图形实例代码
2019/05/15 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
Python pip 常用命令汇总
2020/10/19 Python
汇智创新科技发展有限公司
2015/12/06 面试题
电气自动化大学生求职信
2013/10/16 职场文书
实习鉴定评语
2014/01/19 职场文书
廉政教育的心得体会
2014/09/01 职场文书
新教师个人总结
2015/02/06 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
清明节主题班会
2015/08/14 职场文书
2019让人心动的商业计划书
2019/06/27 职场文书
MongoDB数据库的安装步骤
2021/06/18 MongoDB
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android
mysql中整数数据类型tinyint详解
2021/12/06 MySQL