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变量与赋值
Apr 03 Python
python flask实现分页的示例代码
Aug 02 Python
Django 视图层(view)的使用
Nov 09 Python
浅谈python中真正关闭socket的方法
Dec 18 Python
python实现图片上添加图片
Nov 26 Python
Docker部署Python爬虫项目的方法步骤
Jan 19 Python
python语言中有算法吗
Jun 16 Python
读取nii或nii.gz文件中的信息即输出图像操作
Jul 01 Python
python打包多类型文件的操作方法
Sep 21 Python
Python偏函数实现原理及应用
Nov 20 Python
解决python 输出到csv 出现多空行的情况
Mar 24 Python
只用50行Python代码爬取网络美女高清图片
Jun 02 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备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
2020/04/23 PHP
Jquery iframe内部出滚动条
2010/02/11 Javascript
用js解决数字不能换行问题
2010/08/10 Javascript
浅谈JavaScript函数参数的可修改性问题
2013/12/05 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
代码分析jQuery四种静态方法使用
2015/07/23 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(二)
2017/01/21 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue小白入门教程
2018/04/02 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
手把手教你 CKEDITOR 4 实现Dialog 内嵌 IFrame操作详解
2019/06/18 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
React实现轮播效果
2020/08/25 Javascript
[11:44]Ti9 OG夺冠时刻
2019/08/25 DOTA
python字符串连接方法分析
2016/04/12 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
Python的SQLalchemy模块连接与操作MySQL的基础示例
2016/07/11 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
Python+matplotlib+numpy绘制精美的条形统计图
2018/01/02 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
python爬取王者荣耀全皮肤的简单实现代码
2020/01/31 Python
如何解决tensorflow恢复模型的特定值时出错
2020/02/06 Python
Toppik顶丰增发纤维官网:解决头发稀疏
2017/12/30 全球购物
Under Armour安德玛德国官网:美国高端运动科技品牌
2019/03/09 全球购物
信息技术专业个人自我评价
2013/12/11 职场文书
争论的故事教学反思
2014/02/06 职场文书
工作检讨书怎么写
2014/10/10 职场文书
平遥古城导游词
2015/02/03 职场文书