主要用到两种方法:
1.根据图层文件路径
2.根据图层文件名
代码如下,仅供参考
currentlyr_name = self.dlg.comboBox_layers.currentText()
if ':' in currentlyr_name:
filename = os.path.splitext(os.path.basename(currentlyr_name))[0]
layer = QgsVectorLayer(currentlyr_name, filename, "ogr")
else:
layer = QgsProject.instance().mapLayersByName(currentlyr_name)[0]
feats = layer.getFeatures() # 获取指定图层下的所有要素
for feat in feats:
feat_id_value = feat.id() # 获取要素ID值
feat_name_value = feat['NAME'] # 名称属性值
feat_remark_value = feat['REMARK'] # 备注属性值
feat_remark_value1 = re.findall(r'\d+', feat_remark_value ) # 正则表达式提取数字