gpt4 book ai didi

python - 如何从 python 脚本中获取资源文件的完整路径?

转载 作者:行者123 更新时间:2023-12-04 15:39:48 28 4
gpt4 key购买 nike

好的,所以我将一个 python 脚本放在一个包中。这棵树看起来像这样:

├── foo
│   ├── __init__.py
│   ├── funcs
│   │   ├── __init__.py
│   │   └── stuff.py
│   ├── resources
│   │   └── haarcascade_frontalface_default.xml
│   └── scripts
│      ├── __init__.py
│      └── script.py
└── setup.py

所以在脚本文件中,我使用 openCV 的 cv2 来检测人脸,为此 cv2.CascadeClassifier 需要位于/resources 下的 XML 文件的路径。现在因为这是一个脚本,我需要能够从任何地方运行它,所以很遗憾,资源文件的相对路径并不能解决问题。如何从 script.py 中获取 xml 文件的绝对路径?您可以假设脚本和 xml 文件分别相对于彼此定位,就像上面的示例一样。谢谢:))

PS:如果该解决方案也适用于鸡蛋,则有额外好处。非常感谢

最佳答案

目前最好的方法是 importlib.resources .从 Python 3.7 开始,它在标准库中可用。对于早期版本,有一个名为 importlib_resources 的向后移植.

关注documentation .

在你的情况下,这应该或多或少看起来像这样:

import importlib.resources
xml_path = importlib.resources.path('foo.resources', 'haarcascade_frontalface_default.xml')

这样做有很多优点,最重要的是它是标准的,并且无论安装在什么地方都可以使用,即使它是一个 zip 文件。

在您的情况下,您可能必须将 __init__.py 文件添加到您的 resources 目录。

关于python - 如何从 python 脚本中获取资源文件的完整路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58187557/

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