Bootstrap

QGIS批量导出图层矢量文件

在QGIS中,可以使用Python编程来批量将矢量数据导出到指定文件夹内。以下是一个简单的代码:
import os
from qgis.core import QgsVectorLayer

# 要导出的图层列表
layer_list = [layer1, layer2, layer3]  # 替换为要导出的图层对象

# 导出文件夹路径
output_folder = 'path/to/output/'  # 替换为实际的输出文件夹路径

# 遍历图层列表
for layer in layer_list:
    # 确保图层有效
    if isinstance(layer, QgsVectorLayer) and layer.isValid():
        # 构建导出文件路径
        layer_name = layer.name()
        output_path = os.path.join(output_folder, f'{layer_name}.shp')

        # 使用图层提供程序进行导出
        QgsVectorFileWriter.writeAsVectorFormat(layer, output_path, 'utf-8', layer.crs(), 'ESRI Shapefile')

        # 输出导出结果
        if QgsVectorLayer(output_path, layer_name, 'ogr').isValid():
            print(f'{layer_name} 导出成功!')
        else:
            print(f'{layer_name} 导出失败!')
 

在上述代码中,首先定义了要导出的图层列表 `layer_list`,可以根据自己的需求修改和添加图层对象。然后,指定了导出文件夹路径 `output_folder`,请将其替换为实际的目标文件夹路径。接下来,通过遍历图层列表,使用 `QgsVectorFileWriter.writeAsVectorFormat()` 方法将每个图层导出为Shapefile格式,导出文件的命名方式为图层名称 + ".shp"。最后,根据导出结果输出相应信息。

请注意,在编程过程中要确保图层对象有效,并且目标文件夹存在并有写入权限。此外,请根据需要调整导出格式和其他参数。

;