#1 Thu 10 May 2012 12:22
- nawak
- Participant assidu
- Date d'inscription: 11 Sep 2007
- Messages: 216
shp2pgsql
Bonjour,
débutant en python, je cherche à lancer un shp2pgsql (sous widows) dans un script python.
est - ce possible ?
Merci
Hors ligne
#2 Thu 10 May 2012 22:55
- gallab
- Participant occasionnel
- Lieu: Marseille
- Date d'inscription: 28 May 2010
- Messages: 19
Re: shp2pgsql
Oui ça me semble possible. (je le lance bien depuis PHP donc pourquoi pas en python)
La méthode que j'utilise, j'écris un fichier batch (.bat) qui inclut la commande shp2pgsql à exécuter et je lance le fichier depuis mon script.
Ensuite quand l'exécution de mon script se termine je supprime le fichier .bat
enfin bon, il y a probablement une solution plus élégante surtout si tu peux appeler directement des fichiers EXE depuis Python (à voir).
à +
Gallien
Hors ligne
#3 Fri 11 May 2012 08:06
- Nicolas Granier
- Participant assidu
- Date d'inscription: 19 Apr 2007
- Messages: 271
Re: shp2pgsql
Oui c'est faisable
Exemple ci-dessous en python
Code:
#import du module module servant à charger l'environnement de l'OS import os #on place la ligne de commande dans une variable commande = "shp2pgsql -g the_geom -I ..." #on execute os.system (commande)
A+
Dernière modification par Nicolas Granier (Fri 11 May 2012 08:07)
Hors ligne
#4 Fri 11 May 2012 09:13
- nawak
- Participant assidu
- Date d'inscription: 11 Sep 2007
- Messages: 216
Re: shp2pgsql
Bonjour,
et merci pour vos réponses.
effectivement "os.system" semble bien correspondre et j'arrive, sous linux, à faire ce que je veux...Par contre sous windows j'ai des soucis avec les guillements (ie il ne prend pas les noms de dossiers avec espace)...quelqu'un a-t-il eu ce genre de probleme? y a t-il une règle précise?
Merci
Hors ligne
#5 Fri 11 May 2012 10:59
- Nicolas Granier
- Participant assidu
- Date d'inscription: 19 Apr 2007
- Messages: 271
Re: shp2pgsql
il faut mettre les chemins contenant des espaces entre guillemets et échapper les guillemets
exemple "shp2pgsql -I \"c:/poste de travail/mondossier\"
ou alors faire avec des apostrophes, il n'y a pas besoin d'échapper les guillemets.
Hors ligne