#1 Tue 05 June 2018 07:21
- dodo28
- Juste Inscrit !
- Date d'inscription: 5 Nov 2015
- Messages: 5
QGIS 3.0: Enregistrement shape en csv python
Bonsoir,
Pouvez vous m'aider sur ce problème, j'essaye d'enregistrer les données attributaire d'un fichier shp en csv depuis la console python via le code suivant
Code:
from qgis.core import( QgsVectorFileWriter ) currentLayer = qgis.utils.iface.mapCanvas().layers()[0] chemin = "T:/NIVALIStoto.csv" QgsVectorFileWriter.writeAsVectorFormat(currentLayer, chemin, 'utf-8', layer.crs(), "CSV")
Je débute en python
merci pour votre aide
Hors ligne
#2 Tue 05 June 2018 16:11
Re: QGIS 3.0: Enregistrement shape en csv python
Bonjour,
Testez ceci !
Code:
from qgis.core import QgsVectorFileWriter currentLayer = qgis.utils.iface.mapCanvas().layers()[0] chemin = "T:/NIVALIStoto.csv" # QgsVectorFileWriter.writeAsVectorFormat(currentLayer, chemin, 'utf-8', layer.crs(), "CSV") # C'est le crs du QgsVectorLayer instancié plus haut qui nous intéresse # D'où la modif ci-dessous : QgsVectorFileWriter.writeAsVectorFormat(currentLayer, chemin, 'utf-8', currentLayer.crs(), "CSV")
Bonne journée,
S.
Hors ligne
#3 Wed 06 June 2018 09:03
- dodo28
- Juste Inscrit !
- Date d'inscription: 5 Nov 2015
- Messages: 5
Re: QGIS 3.0: Enregistrement shape en csv python
Bonjour,
merci pour votre aide mais j'ai toujours un message d’erreur qui s'affiche :
(3, 'La création de la couche a échoué (Erreur OGR : Attempt to create csv layer (file) against a non-directory datasource.)')
avec le code suivant :
Code:
from qgis.core import( QgsVectorFileWriter ) currentLayer = qgis.utils.iface.mapCanvas().layers()[0] chemin = "T:/NIVALIS\toto.csv" QgsVectorFileWriter.writeAsVectorFormat(currentLayer, chemin, 'utf-8', currentLayer.crs(), "CSV")
Merci pour votre aide
Hors ligne
#4 Wed 06 June 2018 15:46
- dodo28
- Juste Inscrit !
- Date d'inscription: 5 Nov 2015
- Messages: 5
Re: QGIS 3.0: Enregistrement shape en csv python
Bonjour,
Merci mais nous avons trouvé voici le code pour python 3
Code:
from qgis.core import * from qgis.utils import * import processing chemin ="T:/N_CH/N_PLAN_CHE_028.TAB" context = QgsProcessingContext() layer = QgsProcessingUtils.mapLayerFromString(chemin, context) out_file = open('t:/N_PLAN_CH_028.csv', "wt") out_file.write("MATRICULE" + "," + "BOIS_PLAINE" + "," + "surface" + "\n") for feat in layer.getFeatures(): out_file.write(str(feat["MATRICULE"]) + "," + str(feat["BOIS_PLAINE"]) + "," + str(feat["surface"]) + "\n") out_file.close() iface.actionExit().trigger()
merci pour votre aide
Dernière modification par dodo28 (Wed 06 June 2018 15:47)
Hors ligne