Sie können die folgende Methode aus der QgsProject-Klasse verwenden , um den Pfad zur Projektdatei abzurufen:
from qgis.core import *
prjpath = QgsProject.instance().fileName()
Wenn kein Projekt geladen ist oder das aktuelle Projekt noch nicht gespeichert wurde, wird ein leerer QString zurückgegeben:
PyQt4.QtCore.QString(u'')
Sie können den Pfad der Projektdatei weiter in eine Python-Unicode-Zeichenfolge (falls erforderlich) konvertieren mit:
unicode(prjpath)
Wenn Sie jedoch möchten, dass Ihr Plugin plattformübergreifend ist, sollten Sie in Python nicht mit dem Dateipfad als Zeichenfolge arbeiten, sondern die hervorragende QFileInfo-Klasse von Qt nutzen :
from PyQt4.QtCore import *
from qgis.core import *
prjfi = QFileInfo(QgsProject.instance().fileName())
prjfi.absolutePath() # what you are probably looking for
Die QFileInfo-Klasse (zusammen mit QFile und QDir ) behandelt viele plattformübergreifende Dateisystemprobleme für Sie und bietet auch Methoden, die ansonsten auf mehrere Python-Klassen verteilt wären.
QgsProject.instance().homePath()
, um den Pfad direkt zu erhalten