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下函数参数的传递(参数带星号的说明)
Sep 19 Python
Python实现文件信息进行合并实例代码
Jan 17 Python
Python实现基于C/S架构的聊天室功能详解
Jul 07 Python
Python3.4 splinter(模拟填写表单)使用方法
Oct 13 Python
详解Python3之数据指纹MD5校验与对比
Jun 11 Python
Python中使用双下划线防止类属性被覆盖问题
Jun 27 Python
Pycharm新建模板默认添加个人信息的实例
Jul 15 Python
微信公众号token验证失败解决方案
Jul 22 Python
python datetime中strptime用法详解
Aug 29 Python
基于Python的OCR实现示例
Apr 03 Python
selenium+python自动化78-autoit参数化与批量上传功能的实现
Mar 04 Python
python处理json数据文件
Apr 11 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/07/30 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
JavaScript必知必会(六) delete in instanceof
2016/06/08 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
vue移动端裁剪图片结合插件Cropper的使用实例代码
2017/07/10 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
KOA+egg.js集成kafka消息队列的示例
2018/11/09 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
JavaScript逻辑运算符相关总结
2020/09/04 Javascript
独特的python循环语句
2016/11/20 Python
python机器学习实战之K均值聚类
2017/12/20 Python
python opencv实现任意角度的透视变换实例代码
2018/01/12 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
Pycharm中如何关掉python console
2020/10/27 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
校园新闻广播稿
2014/01/10 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
公司请假条格式
2014/04/11 职场文书
大学同学会活动方案
2014/08/20 职场文书
办公用房租赁协议书
2014/11/29 职场文书
年度考核表个人总结
2015/03/06 职场文书
反腐倡廉主题教育活动总结
2015/05/07 职场文书
社区宣传标语口号
2015/12/26 职场文书
银行柜员优质服务心得体会
2016/01/22 职场文书
预备党员的思想汇报,你真的会写吗?
2019/06/28 职场文书
Go 实现英尺和米的简单单位换算方式
2021/04/29 Golang
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS