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赋值语句后逗号的作用分析
Jun 08 Python
基于python实现微信模板消息
Dec 21 Python
python中实现迭代器(iterator)的方法示例
Jan 19 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
详解Python数据可视化编程 - 词云生成并保存(jieba+WordCloud)
Mar 26 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
Tensorflow tf.dynamic_partition矩阵拆分示例(Python3)
Feb 07 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
快速解释如何使用pandas的inplace参数的使用
Jul 23 Python
Python+OpenCV检测灯光亮点的实现方法
Nov 02 Python
Python预测分词的实现
Jun 18 Python
Python爬虫框架之Scrapy中Spider的用法
Jun 28 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 变量类型的强制转换
2009/10/23 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
yii上传文件或图片实例
2014/04/01 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
php 策略模式原理与应用深入理解
2019/09/25 PHP
TNC vs BOOM BO3 第一场2.13
2021/03/10 DOTA
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
原生js实现点击轮播切换图片
2020/02/11 Javascript
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
requests和lxml实现爬虫的方法
2017/06/11 Python
使用实现pandas读取csv文件指定的前几行
2018/04/20 Python
Django model序列化为json的方法示例
2018/10/16 Python
python的concat等多种用法详解
2018/11/28 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
南京某公司笔试题
2013/01/27 面试题
介绍一下如何优化MySql
2016/12/20 面试题
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
道德之星事迹材料
2014/05/03 职场文书
干部选拔任用方案
2014/05/26 职场文书
中文专业求职信
2014/06/20 职场文书
革命英雄事迹演讲稿
2014/09/13 职场文书
环卫工作个人总结
2015/03/04 职场文书
公司放假通知范文
2015/04/14 职场文书
公司开会通知
2015/04/20 职场文书
2015年加油站站长工作总结
2015/05/27 职场文书
2016暑期社会实践心得体会范文
2016/01/14 职场文书
python计算列表元素与乘积详情
2022/08/05 Python