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多线程结合队列下载百度音乐的方法
Jul 27 Python
Python数据库的连接实现方法与注意事项
Feb 27 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
python3 爬取图片的实例代码
Nov 06 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
windows下Python安装、使用教程和Notepad++的使用教程
Oct 06 Python
Python如何使用paramiko模块连接linux
Mar 18 Python
Python发送邮件封装实现过程详解
May 09 Python
基于python代码批量处理图片resize
Jun 04 Python
django Model层常用验证器及自定义验证器详解
Jul 15 Python
用 python 进行微信好友信息分析
Nov 28 Python
Python Pandas解析读写 CSV 文件
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
PHP4(windows版本)中的COM函数
2006/10/09 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
计算php页面运行时间的函数介绍
2013/07/01 PHP
PHP获取一年中每个星期的开始和结束日期的方法
2015/02/12 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
javascript编程异常处理实例小结
2015/11/30 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
jQuery实现弹窗下底部页面禁止滑动效果
2017/12/19 jQuery
JS实现图片切换效果
2018/11/17 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
浅谈python新手中常见的疑惑及解答
2016/06/14 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
Python语言描述KNN算法与Kd树
2017/12/13 Python
python实现神经网络感知器算法
2017/12/20 Python
python操作excel的方法
2018/08/16 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
django使用LDAP验证的方法示例
2018/12/10 Python
python实现合并两个排序的链表
2019/03/03 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
利用Python pandas对Excel进行合并的方法示例
2020/11/04 Python
Python利用imshow制作自定义渐变填充柱状图(colorbar)
2020/12/10 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
HTML5 3D衣服摇摆动画特效
2016/03/17 HTML / CSS
世界上最好的足球商店:Unisport
2019/03/02 全球购物
什么是JNDI的上下文?如何初始化JNDI上下文
2012/03/10 面试题
自我鉴定思想方面
2013/10/07 职场文书
珍惜水资源建议书
2014/03/12 职场文书
乡镇综治宣传月活动总结
2014/07/02 职场文书
2014年纪委工作总结
2014/12/05 职场文书
幼儿园教师岗位职责
2015/04/02 职场文书
大学副班长竞选稿
2015/11/21 职场文书
python批量创建变量并赋值操作
2021/06/03 Python