Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- ##shpgen = name
- ##Fichier_CSV = file
- ##Chemin_de_sortie = folder
- ##nomodeler
- import sys
- import re
- import csv
- from PyQt4.QtCore import *
- from PyQt4.QtGui import *
- import os.path
- reload(sys)
- sys.setdefaultencoding('utf8')
- final_list = []
- with open(Fichier_CSV, "rU") as s:
- reader_tables = csv.DictReader(s,delimiter=';')
- liste_tables = list(reader_tables)
- l_tables = [i['table'] for i in liste_tables]
- l_tables = set(l_tables)
- for table in l_tables:
- l1 = [line for line in liste_tables if line['table'] == table]
- geometry = l1[1]['geometry']
- layer_mem = QgsVectorLayer(geometry+"?crs=epsg:2154",table,"memory")
- QgsVectorFileWriter.writeAsVectorFormat(layer_mem,os.path.joint(Chemin_de_sortie+"{}".format(table)),"utf-8",None,"ESRI Shapefile",False)
- layer_path = os.path.join(Chemin_de_sortie,table+".shp")
- shp = QgsVectorLayer(layer_path,table,'ogr')
- pr = shp.dataProvider()
- shp.startEditing()
- for field in l1:
- if field['type'] != 'Double':
- pr.addAttributes([QgsField(field['field'],getattr(QVariant,field['type']),field['typeName'],int(field['len']))])
- else:
- pr.addAttributes([QgsField(field['field'],getattr(QVariant,field['type']),field['typeName'],int(field['len']),int(field['precision']))])
- shp.updateFields()
- shp.commitChanges()
- del layer_mem,shp,pr
- name 'Fichier_CSV' is not defined See log for more details
Add Comment
Please, Sign In to add comment