Спойлер
from qgis.core import *
from qgis.gui import *
from PyQt5.QtWidgets import QFileDialog, QInputDialog, QAction, QMenu
import processing
# Инициализировать приложение Qt
app = QApplication([])
# Открыть диалоговое окно для выбора файла
input_file, _ = QFileDialog.getOpenFileName(None, 'Выберите исходный файл', '', 'Shapefile (*.shp)')
# Если файл не выбран, завершить выполнение скрипта
if not input_file:
exit()
# Получить имя выбранного файла без расширения
input_filename = QFileInfo(input_file).baseName()
# Открыть диалоговое окно для выбора пути сохранения
output_dir = QFileDialog.getExistingDirectory(None, 'Выберите папку для сохранения')
# Если папка не выбрана, завершить выполнение скрипта
if not output_dir:
exit()
# Открыть диалоговое окно для выбора поля для разбиения
layer = QgsVectorLayer(input_file, '', 'ogr')
field_names = [field.name() for field in layer.fields()]
field_name, ok = QInputDialog.getItem(None, 'Выберите поле для разбиения', 'Имя поля:', field_names, 0, False)
# Если имя поля не выбрано или диалоговое окно закрыто, завершить выполнение скрипта
if not ok or not field_name:
exit()
# Установить систему координат и границы мира для экспорта в формат TAB
crs = QgsCoordinateReferenceSystem('USER:100010')
ext = QgsRectangle(-10000000, -10000000, 10000000, 10000000)
# Задать параметры для инструмента Split Vector Layer
params = {
'INPUT': input_file, # входной файл
'FIELD': field_name, # поле для группировки
'FILE_TYPE': 'TAB', # формат экспорта
'PREFIX_FIELD': False,
'OUTPUT': f'{output_dir}/{input_filename}_split', # выходной файл
'OPTIONS': '', # параметры экспорта
'SP': crs, # система координат выходного файла
'CLIP': ext # границы мира выходного файла
}
# Выполнить инструмент Split Vector Layer
processing.run('qgis:splitvectorlayer', params)
from qgis.gui import *
from PyQt5.QtWidgets import QFileDialog, QInputDialog, QAction, QMenu
import processing
# Инициализировать приложение Qt
app = QApplication([])
# Открыть диалоговое окно для выбора файла
input_file, _ = QFileDialog.getOpenFileName(None, 'Выберите исходный файл', '', 'Shapefile (*.shp)')
# Если файл не выбран, завершить выполнение скрипта
if not input_file:
exit()
# Получить имя выбранного файла без расширения
input_filename = QFileInfo(input_file).baseName()
# Открыть диалоговое окно для выбора пути сохранения
output_dir = QFileDialog.getExistingDirectory(None, 'Выберите папку для сохранения')
# Если папка не выбрана, завершить выполнение скрипта
if not output_dir:
exit()
# Открыть диалоговое окно для выбора поля для разбиения
layer = QgsVectorLayer(input_file, '', 'ogr')
field_names = [field.name() for field in layer.fields()]
field_name, ok = QInputDialog.getItem(None, 'Выберите поле для разбиения', 'Имя поля:', field_names, 0, False)
# Если имя поля не выбрано или диалоговое окно закрыто, завершить выполнение скрипта
if not ok or not field_name:
exit()
# Установить систему координат и границы мира для экспорта в формат TAB
crs = QgsCoordinateReferenceSystem('USER:100010')
ext = QgsRectangle(-10000000, -10000000, 10000000, 10000000)
# Задать параметры для инструмента Split Vector Layer
params = {
'INPUT': input_file, # входной файл
'FIELD': field_name, # поле для группировки
'FILE_TYPE': 'TAB', # формат экспорта
'PREFIX_FIELD': False,
'OUTPUT': f'{output_dir}/{input_filename}_split', # выходной файл
'OPTIONS': '', # параметры экспорта
'SP': crs, # система координат выходного файла
'CLIP': ext # границы мира выходного файла
}
# Выполнить инструмент Split Vector Layer
processing.run('qgis:splitvectorlayer', params)