Existe uma maneira de obter o caminho e o nome do arquivo do projeto QGIS atual a partir de um script Python? Atualmente, estou tentando desenvolver um plug-in Python para QGIS e preciso criar um arquivo com um nome semelhante na mesma pasta.
Existe uma maneira de obter o caminho e o nome do arquivo do projeto QGIS atual a partir de um script Python? Atualmente, estou tentando desenvolver um plug-in Python para QGIS e preciso criar um arquivo com um nome semelhante na mesma pasta.
Respostas:
Você pode usar o seguinte método da classe QgsProject para recuperar o caminho para o arquivo de projeto:
from qgis.core import *
prjpath = QgsProject.instance().fileName()
Se não houver nenhum projeto carregado ou o projeto atual ainda não foi salvo, isso retornará um QString vazio:
PyQt4.QtCore.QString(u'')
Você pode converter o caminho do arquivo do projeto em uma string Python Unicode (se necessário) com:
unicode(prjpath)
No entanto, se você pretende que seu plug-in seja multiplataforma, é melhor não trabalhar com o caminho do arquivo como uma string no Python, mas aproveite a excelente classe QFileInfo do Qt :
from PyQt4.QtCore import *
from qgis.core import *
prjfi = QFileInfo(QgsProject.instance().fileName())
prjfi.absolutePath() # what you are probably looking for
A classe QFileInfo (junto com QFile e QDir ) tratará de muitos problemas de sistema de arquivos de plataforma cruzada para você e fornecerá métodos que, de outra forma, estariam espalhados por mais classes Python.
QgsProject.instance().homePath()para obter o caminho diretamente #