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读写ini文件示例(python读写文件)
Mar 25 Python
通过数据库向Django模型添加字段的示例
Jul 21 Python
python机器学习之决策树分类详解
Dec 20 Python
微信跳一跳python自动代码解读1.0
Jan 12 Python
python中多层嵌套列表的拆分方法
Jul 02 Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 Python
python 中pyqt5 树节点点击实现多窗口切换问题
Jul 04 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
Feb 28 Python
python实现文件分片上传的接口自动化
Nov 19 Python
python 实现的IP 存活扫描脚本
Dec 10 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 Python
Python基于百度API识别并提取图片中文字
Jun 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
造势之举?韩国总统候选人发布《星际争霸》地图
2017/04/22 星际争霸
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
把1316这个数表示成两个数的和,其中一个为13的倍数,另一个是11的倍数,求这两个数。
2011/06/24 PHP
php中检查文件或目录是否存在的代码小结
2012/10/22 PHP
PHP十六进制颜色随机生成器功能示例
2017/07/24 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
用JavaScript隐藏控件的方法
2009/09/21 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
2013/06/19 Javascript
使用text方法获取Html元素文本信息示例
2014/09/01 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
VUE预渲染及遇到的坑
2018/09/03 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
vue 取出v-for循环中的index值实例
2019/11/09 Javascript
vue组件中实现嵌套子组件案例
2020/08/31 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
python itchat给指定联系人发消息的方法
2019/06/11 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
奥地利汽车配件店:Pkwteile.at
2017/03/10 全球购物
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
甘南现象心得体会
2014/09/11 职场文书
2014教师年度工作总结
2014/11/10 职场文书
东京审判观后感
2015/06/01 职场文书
致运动员的广播稿
2015/08/19 职场文书
python中的plt.cm.Paired用法说明
2021/05/31 Python
JavaScript实现栈结构详细过程
2021/12/06 Javascript