Pythonスクリプトから現在のQGISプロジェクトのパスとファイル名を取得する方法はありますか?私は現在QGIS用のPythonプラグインを開発しようとしています。同じフォルダーに同様の名前のファイルを作成する必要があります。
Pythonスクリプトから現在のQGISプロジェクトのパスとファイル名を取得する方法はありますか?私は現在QGIS用のPythonプラグインを開発しようとしています。同じフォルダーに同様の名前のファイルを作成する必要があります。
回答:
QgsProjectクラスの次のメソッドを使用して、プロジェクトファイルへのパスを取得できます。
from qgis.core import *
prjpath = QgsProject.instance().fileName()
プロジェクトがロードされていない場合、または現在のプロジェクトがまだ保存されていない場合は、空のQStringが返されます。
PyQt4.QtCore.QString(u'')
プロジェクトファイルのパスをさらにPython Unicode文字列に変換できます(必要な場合)。
unicode(prjpath)
ただし、プラグインをクロスプラットフォームにする場合は、Pythonでファイルパスを文字列として操作しないほうがよいでしょう。ただし、Qtの優れたQFileInfoクラスを利用します。
from PyQt4.QtCore import *
from qgis.core import *
prjfi = QFileInfo(QgsProject.instance().fileName())
prjfi.absolutePath() # what you are probably looking for
QFileInfoクラス(およびQFileとQDir)は、多くのクロスプラットフォームファイルシステムの問題を処理し、そうでなければ、より多くのPythonクラスに分散するメソッドを包括的に提供します。
QgsProject.instance().homePath()
直接パスを取得するために使用することもできます