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 相关文章推荐
pycharm 使用心得(六)进行简单的数据库管理
Jun 06 Python
python海龟绘图实例教程
Jul 24 Python
Python脚本实现网卡流量监控
Feb 14 Python
Python实现SMTP发送邮件详细教程
Mar 02 Python
python爬虫框架scrapy实战之爬取京东商城进阶篇
Apr 24 Python
Python与人工神经网络:使用神经网络识别手写图像介绍
Dec 19 Python
Python将文本去空格并保存到txt文件中的实例
Jul 24 Python
python使用webdriver爬取微信公众号
Aug 31 Python
Python批量修改图片分辨率的实例代码
Jul 04 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
Jul 25 Python
Python Pygame实现俄罗斯方块
Feb 19 Python
Pytorch之扩充tensor的操作
Mar 04 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 is_dir() 判断给定文件名是否是一个目录
2010/05/10 PHP
浅谈ThinkPHP的URL重写
2014/11/25 PHP
yii数据库的查询方法
2015/12/28 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
关于php中的json_encode()和json_decode()函数的一些说明
2016/11/20 PHP
【消息提示组件】,兼容IE6/7&&FF2
2007/09/04 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
JS 数字转换研究总结
2013/12/26 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
基于jQuery实现的菜单切换效果
2015/10/16 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
jquery实现拖动效果
2016/08/10 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
div中文字内容溢出常见的解决方法
2017/03/16 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
2021/01/07 Python
open_basedir restriction in effect. 原因与解决方法
2021/03/14 PHP
使用css3做0.5px的细线的示例代码
2018/01/18 HTML / CSS
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
致百米运动员广播稿
2014/01/29 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
销售会议开幕词
2015/01/28 职场文书
入党转正申请报告
2015/05/15 职场文书
入队仪式主持词
2015/07/04 职场文书
MYSQL 无法识别中文的永久解决方法
2021/06/03 MySQL
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
MySQL的全局锁和表级锁的具体使用
2021/08/23 MySQL
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers