我正在使用python从OpenCV中的文件加载级联分类器。由于CascadeClassifier()
方法要求文件名为绝对文件名,因此我必须加载绝对文件名。
但是,我正在Heroku上部署和使用它,我似乎无法获得文件的绝对路径。我尝试过使用os.getcwd() + '\cascader_file.xml'
,但仍然无效。
我想知道如何在Heroku部署中加载分类器
答案 0 :(得分:0)
我明白了。我需要做的就是使用os.path.abspath()
方法将相对路径转换为绝对路径
答案 1 :(得分:0)
如果您要查找的文件位于脚本旁边,则可以获取脚本目录,然后找到目标资源/ conf文件。这比使用os.getcwd
更好,因为您当前的目录可能与脚本的目录不同。
-- my_project
|-- main.py
|-- cascader_file.xml
在脚本cascader_file.xml
中找到main.py
:
d = os.path.dirname(os.path.abspath(__file__)) # your script's dir, my_project
filepath = os.path.join(d, "cascader_file.xml")
filepath = os.path.abspath(filepath) # make it an absolute path
顺便说一句,使用os.path.join
比直接连接路径部分更安全,更平台兼容。