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 Socket编程详细介绍
Mar 23 Python
浅析Python中return和finally共同挖的坑
Aug 18 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
Django框架实现逆向解析url的方法
Jul 04 Python
python 文件查找及内容匹配方法
Oct 25 Python
numpy基础教程之np.linalg
Feb 12 Python
使用python绘制二维图形示例
Nov 22 Python
完美解决ARIMA模型中plot_acf画不出图的问题
Jun 04 Python
基于python实现图片转字符画代码实例
Sep 04 Python
pandas按条件筛选数据的实现
Feb 20 Python
解析目标检测之IoU
Jun 26 Python
python 多态 协议 鸭子类型详解
Nov 27 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生成随机字符串(3种方法)
2015/09/25 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
IE JS无提示关闭窗口不提示的方法
2010/04/29 Javascript
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
javascript实现控制的多级下拉菜单
2015/07/05 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
JavaScript中函数表达式和函数声明及函数声明与函数表达式的不同
2015/11/15 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
JSONP原理及应用实例详解
2018/09/13 Javascript
JavaScript使用类似break机制中断forEach循环的方法
2018/11/13 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
node微信开发之获取access_token+自定义菜单
2019/03/17 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
vue.js 2.0实现简单分页效果
2019/07/29 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
jQuery实现B2B网站后台管理系统侧导航
2020/07/08 jQuery
JavaScript实现消消乐的源代码
2021/01/12 Javascript
python算法学习之基数排序实例
2013/12/18 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
2018/03/05 Python
python中使用while循环的实例
2019/08/05 Python
python算的上脚本语言吗
2020/06/22 Python
python 基于PYMYSQL使用MYSQL数据库
2020/12/24 Python
Delphi工程师笔试题
2013/09/21 面试题
理财学专业自荐书
2014/06/28 职场文书
商场周年庆活动方案
2014/08/19 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
教师工作自我鉴定范文
2014/09/14 职场文书
关于倡议书的范文
2015/04/29 职场文书
青年人初次创业的“五不要”
2019/08/23 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang
如何在C++中调用Python
2021/05/21 Python
10大幻兽系恶魔果实 蝙蝠果实上榜,第一自愈能力强
2022/03/18 日漫