Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Printemps des cartes 2024

#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

Sylther
Participant actif
Lieu: Mtp
Date d'inscription: 17 May 2016
Messages: 144

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

 

Pied de page des forums

Powered by FluxBB