Truy xuất đường dẫn và tên tệp của dự án QGIS hiện tại trong Python [đã đóng]


8

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:


17

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 QFileQĐ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.


1
bạn cũng có thể sử dụng QgsProject.instance().homePath()để có được đường dẫn trực tiếp
Denis Rouzaud
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.