Pythonでの現在のQGISプロジェクトのパスとファイル名の取得[終了]


8

Pythonスクリプトから現在のQGISプロジェクトのパスとファイル名を取得する方法はありますか?私は現在QGIS用のPythonプラグインを開発しようとしています。同じフォルダーに同様の名前のファイルを作成する必要があります。

回答:


17

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クラス(およびQFileQDir)は、多くのクロスプラットフォームファイルシステムの問題を処理し、そうでなければ、より多くのPythonクラスに分散するメソッドを包括的に提供します。


1
QgsProject.instance().homePath()直接パスを取得するために使用することもできます
Denis Rouzaud
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.