Pfad und Dateinamen des aktuellen QGIS-Projekts in Python abrufen [geschlossen]


8

Gibt es eine Möglichkeit, den Pfad und den Dateinamen des aktuellen QGIS-Projekts aus einem Python-Skript abzurufen? Ich versuche derzeit, ein Python-Plugin für QGIS zu entwickeln, und ich muss eine Datei mit einem ähnlichen Namen im selben Ordner erstellen.

Antworten:


17

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.


1
Sie können auch verwenden QgsProject.instance().homePath(), um den Pfad direkt zu erhalten
Denis Rouzaud
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.