Có cách nào để lấy đường dẫn và tên tệp của dự án QGIS hiện tại từ tập lệnh Python không? Tôi hiện đang cố gắng phát triển plugin Python cho QGIS và tôi cần tạo một tệp có cùng tên trong cùng một thư mục.
Có cách nào để lấy đường dẫn và tên tệp của dự án QGIS hiện tại từ tập lệnh Python không? Tôi hiện đang cố gắng phát triển plugin Python cho QGIS và tôi cần tạo một tệp có cùng tên trong cùng một thư mục.
Câu trả lời:
Bạn có thể sử dụng phương thức sau từ lớp QssProject để truy xuất đường dẫn đến tệp dự án:
from qgis.core import *
prjpath = QgsProject.instance().fileName()
Nếu không có dự án nào được tải hoặc dự án hiện tại chưa được lưu, điều này sẽ trả về một QString trống:
PyQt4.QtCore.QString(u'')
Bạn có thể chuyển đổi đường dẫn tệp dự án hơn nữa thành chuỗi Unicode Python (nếu cần) với:
unicode(prjpath)
Tuy nhiên, nếu bạn có ý định để plugin của mình là đa nền tảng, tốt hơn hết bạn không nên làm việc với đường dẫn tệp dưới dạng chuỗi trong Python, nhưng tận dụng lớp QFileInfo tuyệt vời của Qt :
from PyQt4.QtCore import *
from qgis.core import *
prjfi = QFileInfo(QgsProject.instance().fileName())
prjfi.absolutePath() # what you are probably looking for
Lớp QFileInfo (cùng với QFile và QĐir ) sẽ xử lý nhiều vấn đề về hệ thống tệp đa nền tảng cho bạn và cung cấp đầy đủ các phương thức có thể lan truyền trên nhiều lớp Python hơn.
QgsProject.instance().homePath()
để có được đường dẫn trực tiếp