gpt4 book ai didi

python - 在 Python 中从 Linux 上的子目录中查找顶级目录

转载 作者:太空宇宙 更新时间:2023-11-04 09:03:03 25 4
gpt4 key购买 nike

我在 Linux 上使用 cron-scheduled Python 2.7 程序从 CodeIgniter 应用程序树中创建各种 HTML 文件部分、图像缩略图等。实际的 Python 程序存在于 CodeIgniter 树下,位于应用程序目录下一级的子目录中,如下所示。

codeigniter/web-root 
|
application
| |
| scripts
| | |
| | my-program.py
| |
| database
| |
| database.sqlite
images

我想使用 os.path 模块中的方法从 my-program.py 中确定 codeigniter/web-root 目录.但是,codeigniter/web-root 的绝对路径在开发和生产环境中是不同的,因此我不希望将此路径信息硬连接到 Python 程序本身。

当前脚本使用以下结构来确定“codeigniter/web-root”的绝对路径,在两个环境中,该路径比脚本本高度出两个目录级别。

#!/bin/env python2.7

import os.path

ci_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

有没有更简洁的方法来确定顶级 (ci_root) 目录而不使用多个 os.path.dirname 调用?

最佳答案

import os.path
print os.path.abspath(__file__+'/../../..') # the directory three levels up

我很惊喜

  • abspath() 设法正确解析,无需使用 os.path.join()
  • 在构建路径之前我们不必去掉文件名

如果 abspath 的解析不起作用,为了跨平台兼容性,我们可以使用可读性较差的东西,例如

  • os.path.sep 而不是'/'
  • os.path.join()

关于python - 在 Python 中从 Linux 上的子目录中查找顶级目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16924210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com