পাইকিজিআইএস-এ প্রকল্পের স্তর বা ফাইলের ফাইল পাচ্ছেন?


13

আমি একটি প্রকল্পে ভেক্টর স্তর থেকে নতুন রাস্টার ফাইল তৈরি করছি। আমি তাদের একই ডিরেক্টরিতে প্রকল্প বা স্তর ফাইলগুলিতে সংরক্ষণ করতে চাই।

পাইকিজিআইএস ব্যবহার করে এই পথটি কীভাবে খুঁজে পাব?

উত্তর:


17

পাইথন কনসোলের জন্য:

QgsProject.instance().readPath("./") # also try "../"

বা সাথে

dir(QgsProject.instance())

আপনি কিছু খুঁজে

fileName()

পাইথন প্লাগইনের জন্য (পরীক্ষিত নয়!):

from PyQt4.QtGui import QMessageBox
from qgis.core import QgsProject
path_absolute = QgsProject.instance().readPath("./")
QMessageBox.information(None, "Title", "AP: " + unicode(path_absolute))

14

একটি সক্রিয় স্তরে ভেক্টর ফাইল পাথ অ্যাক্সেস করতে পাইথন কনসোলটিতে এই কোডটি ভালভাবে কাজ করে:

>>>import os
>>>myfilepath= iface.activeLayer().dataProvider().dataSourceUri()
>>>myfilepath
u'/home/zeito/tiznados_canoa.tif'
>>>(myDirectory,nameFile) = os.path.split(myfilepath)
>>>myDirectory
u'/home/zeito'
>>>nameFile
u'tiznados_canoa.tif'

এটি আমার 'tiznados_canoa.tif' রাস্টার সাথে একটি সক্রিয় স্তর হিসাবে পরীক্ষিত হয়েছিল।


3
ভেক্টর লেয়ারের ক্ষেত্রে সচেতন থাকুন ফাইলের নামের পরে পাইপ এবং লেয়ার আইডিও রয়েছে (সি: / shaशेs/test.shp | স্তরid = 0)। আমি এটিকে সরাতে পথ = পথ [: path.rfind ('|')] ব্যবহার করি।
মিরো

8

যদি আপনি একটি সক্রিয় স্তরে কোনও ভেক্টর ফাইলের পাথ অ্যাক্সেস করতে চান তবে এটি কাজ করে বলে মনে হচ্ছে:

myfilepath= os.path.dirname( unicode( qgis.utils.iface.activeLayer().dataProvider().dataSourceUri() ) ) ;
fic = myfilepath + "[% "FILE" %]"

তারপরে মাইলেয়ার হিসাবে একই ডিরেক্টরিতে অবস্থিত একটি ছবি বা পাঠ্য খুলতে:

from PyQt4 import QtWebKit, QtCore ; vue=QtWebKit.QWebView() vue.setUrl( QtCore.QUrl( fic ) ) ; vue.show()

দরকারী উত্তর কিন্তু ফাইলের নাম কী? আপনি "[%" ফাইল "%]" ব্যবহার করেন তবে এর অর্থ কী তা আমি বুঝতে পারি না ...
জিএম

1

আমি কিউজিআইএস 3.4 এ এটি পরীক্ষা করেছি
QgsProject.instance().fileName()

পুরো পথটি ফাইলে ফিরিয়ে দেবে

'সি: /MyDirectory/18809_US66.qgz'

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.