简体   繁体   English

QGIS python 导出组的所有图层

[英]QGIS python export all layers of group

in my QGIS project browser I have organized my layers within two groups (test1, test2).在我的 QGIS 项目浏览器中,我将图层组织在两组(test1、test2)中。 Now I would like to export all layers of the group "test1" automatically as csv using python.现在我想使用 python 将组“test1”的所有层自动导出为 csv。 I found some code to export all layers of the project to csv, that works fine so far:我找到了一些将项目的所有层导出到 csv 的代码,到目前为止效果很好:

pathToFile = "C:/Users/xxxx/Documents/test/"
for vLayer in QgsProject.instance().mapLayers().values():
    QgsVectorFileWriter.writeAsVectorFormat( vLayer,  pathToFile+ vLayer.name() + ".csv", "utf-8", vLayer.crs(), driverName="CSV" )

And I found a code to get a list of all layers in the specific group:我找到了一个代码来获取特定组中所有层的列表:

mygroup = root.findGroup("test1") 
layer_list= mygroup.findLayers()
layer_list = [layer.name() for layer in mygroup.children()]

Unfortunately I cannot get these two together to export the desired layers.不幸的是,我无法将这两个放在一起来导出所需的图层。 Can anyone help how to do this?谁能帮助如何做到这一点?

root = QgsProject.instance().layerTreeRoot()
mygroup = root.findGroup("test1")
layer_list= mygroup.findLayers()
layer_list = [layer.name() for layer in mygroup.children()]
for layer in layer_list:
    print(layer)
    
pathToFile = "C:/Users/xxxx/Documents/test/"
for vLayer in QgsProject.instance().mapLayers().values():
    if vLayer.name() in layer_list:
        print(vLayer.name())
        QgsVectorFileWriter.writeAsVectorFormat( vLayer,  pathToFile+ vLayer.name() + ".csv", "utf-8", vLayer.crs(), driverName="CSV" )

Question is old but, answer probably can help to someone else, it just exporting layers that contains in layer_list.问题很旧,但答案可能对其他人有帮助,它只是导出包含在 layer_list 中的图层。 Print is added for better understending what happening.添加打印以更好地了解发生的情况。 Code can be executed in QGIS up to 3 version in Python console or Python console editor.代码可以在 Python 控制台或 Python 控制台编辑器中的 QGIS 最多 3 个版本中执行。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM