Recuperar o caminho e o nome do arquivo do projeto QGIS atual em Python [fechado]

8

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.

Dominik Froehlich
fonte

Respostas:

17

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.

dakcarto
fonte
1
você também pode usar QgsProject.instance().homePath()para obter o caminho diretamente #
Denis Rouzaud 26/07/19