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程序中的实现及简单改进
May 04 Python
Python实现遍历目录的方法【测试可用】
Mar 22 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 Python
在Python中增加和插入元素的示例
Nov 01 Python
Python实现常见的回文字符串算法
Nov 14 Python
python实现的读取网页并分词功能示例
Oct 29 Python
Django自带的加密算法及加密模块详解
Dec 03 Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
OpenCV python sklearn随机超参数搜索的实现
Jan 17 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
Apr 15 Python
Python进阶学习之带你探寻Python类的鼻祖-元类
May 08 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中使用Oracle数据库(6)
2006/10/09 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
PHP数据库操作三:redis用法分析
2017/08/16 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
PHP微信发送推送消息乱码的解决方法
2019/02/28 PHP
JavaScript实现Sleep函数的代码
2007/03/04 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
JavaScript中Number.MAX_VALUE属性的使用方法
2015/06/04 Javascript
jQuery实现定时读取分析xml文件的方法
2015/07/16 Javascript
解析Node.js异常处理中domain模块的使用方法
2016/02/16 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
基于vue实现分页效果
2017/11/06 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
layui点击数据表格添加或删除一行的例子
2019/09/12 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
python基础教程之字典操作详解
2014/03/25 Python
Python编写百度贴吧的简单爬虫
2015/04/02 Python
Python中的面向对象编程详解(上)
2015/04/13 Python
Python中is与==判断的区别
2017/03/28 Python
开源软件包和环境管理系统Anaconda的安装使用
2017/09/04 Python
Python3使用pandas模块读写excel操作示例
2018/07/03 Python
python实现爬取图书封面
2018/07/05 Python
快速解决docker-py api版本不兼容的问题
2019/08/30 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
HTML5时代CSS设置漂亮字体取代图片
2014/09/04 HTML / CSS
加拿大领先家居家具网上购物:Aosom.ca
2020/05/27 全球购物
学校消防演习方案
2014/02/19 职场文书
工作目标责任书
2014/07/23 职场文书
奶茶店创业计划书
2014/08/14 职场文书
芙蓉镇观后感
2015/06/10 职场文书
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电