[postgis-users] Calling pgsql2shp.exe via python

David Quinn daithiquinn at gmail.com
Mon Feb 20 16:39:42 PST 2012


Thanks for the link, Stefan. After testing out a few approaches this worked:

import subprocess
subprocess.call(['C:/Program Files (x86)/PostgreSQL/9.1/bin/pgsql2shp.exe',
'-f', 'D:\testShapefile.shp', '-h localhost', '-u postgres', '-p 5434',
'test_db', 'SELECT * FROM  myschema.testquery'])

-David

On Mon, Feb 20, 2012 at 6:24 PM, Stefan Keller <sfkeller at gmail.com> wrote:

> Yes; it's most probably a quoting problem: See e.g.
>
> http://stackoverflow.com/questions/204017/how-do-i-execute-a-program-from-python-os-system-fails-due-to-spaces-in-path
>
> -Stefan
>
> 2012/2/21 Horst Düster <horst.duester at kappasys.ch>:
> > Be careful with the double quotes
> >
> > Dr. Horst Düster
> > Kappasys
> > Alte Bernstrasse 13
> > CH-4500 Solothurn
> >
> > Tel.: +41 (0) 32 514 00 40
> > Mobil: +41 (0) 76 408 51 06
> > eMail: horst.duester at kappasys.ch
> > skype: horstduester
> > Twitter: moazagotl
> > Web: www.kappasys.ch
> >
> > lat: N 47° 12' 06.408" lon: E 7° 32' 13.740"
> >
> > Am 21.02.2012 00:11, schrieb David Quinn:
> >
> >> Stefan
> >> Yes - It's just one line in my python file and I double-checked my
> quotes.
> >> -David
> >>
> >> On Mon, Feb 20, 2012 at 6:04 PM, Stefan Keller<sfkeller at gmail.com>
>  wrote:
> >>
> >>> David
> >>>
> >>> Just to be sure: You did make one single line without line breaks from
> >>> the
> >>> mail?
> >>>
> >>> os.system('start "C:\Program Files
> >>> (x86)\PostgreSQL\9.1\bin\pgsql2shp.exe" -f D:\testShapefile.shp -h
> >>> localhost -u postgres -p 5432 test_db "SELECT * FROM
> >>> myschema.testquery"')
> >>>
> >>> -Stefan
> >>>
> >>> 2012/2/20 David Quinn<daithiquinn at gmail.com>:
> >>>>
> >>>> I did try that and got the following error message:
> >>>>
> >>>> "Windows cannot find '-f'. Make sure that you typed the name
> correctly,
> >>>
> >>> and
> >>>>
> >>>> then try again."
> >>>>
> >>>>
> >>>> On Mon, Feb 20, 2012 at 5:49 PM, Paul Ramsey<pramsey at opengeo.org>
> >>>
> >>> wrote:
> >>>>>
> >>>>>
> >>>>> Your quotes are misplaced, try
> >>>>>
> >>>>> os.system('start "C:\Program Files
> >>>
> >>> (x86)\PostgreSQL\9.1\bin\pgsql2shp.exe"
> >>>>>
> >>>>> -f
> >>>>> D:\testShapefile.shp -h localhost -u postgres -p 5432 test_db
> "SELECT *
> >>>>> FROM
> >>>>> myschema.testquery"')
> >>>>>
> >>>>>
> >>>>> On Mon, Feb 20, 2012 at 2:24 PM, David Quinn<daithiquinn at gmail.com>
> >>>>> wrote:
> >>>>>>
> >>>>>> I'm trying to call the pgsql2shp.exe function using python, as I
> would
> >>>>>> like
> >>>>>> to be able to loop through some tables. What I've tried doing is the
> >>>>>> following:
> >>>>>>
> >>>>>> import os
> >>>>>> os.system('start "C:\Program Files
> >>>>>> (x86)\PostgreSQL\9.1\bin\pgsql2shp.exe -f
> >>>>>> D:\testShapefile.shp -h localhost -u postgres -p 5432 test_db
> "SELECT
> >>>
> >>> *
> >>>>>>
> >>>>>> FROM
> >>>>>> myschema.testquery""')
> >>>>>>
> >>>>>> When I paste the line:
> >>>>>>
> >>>>>> C:\Program Files (x86)\PostgreSQL\9.1\bin\pgsql2shp.exe -f
> >>>>>> D:\testShapefile.shp -h localhost -u postgres -p 5432 test_db
> "SELECT
> >>>
> >>> *
> >>>>>>
> >>>>>> FROM
> >>>>>> myschema.testquery"
> >>>>>>
> >>>>>> it produces a shapefile without a problem. However, my python script
> >>>>>> flashes
> >>>>>> open a CMD terminal, but it disappears before I see what is
> happening
> >>>>>> and
> >>>>>> does not produce any output. I'm using PostGIS 2.0, Windows 7, and
> >>>>>> Python
> >>>>>> 2.6.5.
> >>>>>> If there is an alternative approach to python for this, I will
> happily
> >>>>>> try
> >>>>>> it out.
> >>>>>>
> >>>>>> (I hope this question is not too off-topic!)
> >>>>>>
> >>>>>> Thanks,
> >>>>>> David
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> _______________________________________________
> >>>>>> postgis-users mailing list
> >>>>>> postgis-users at postgis.refractions.net
> >>>>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
> >>>>>>
> >>>>> _______________________________________________
> >>>>> postgis-users mailing list
> >>>>> postgis-users at postgis.refractions.net
> >>>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> postgis-users mailing list
> >>>> postgis-users at postgis.refractions.net
> >>>> http://postgis.refractions.net/mailman/listinfo/postgis-users
> >>>>
> >>> _______________________________________________
> >>> postgis-users mailing list
> >>> postgis-users at postgis.refractions.net
> >>> http://postgis.refractions.net/mailman/listinfo/postgis-users
> >>>
> >>
> >>
> >>
> >> _______________________________________________
> >> postgis-users mailing list
> >> postgis-users at postgis.refractions.net
> >> http://postgis.refractions.net/mailman/listinfo/postgis-users
> >
> > _______________________________________________
> > postgis-users mailing list
> > postgis-users at postgis.refractions.net
> > http://postgis.refractions.net/mailman/listinfo/postgis-users
> _______________________________________________
> postgis-users mailing list
> postgis-users at postgis.refractions.net
> http://postgis.refractions.net/mailman/listinfo/postgis-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20120220/893a8d8d/attachment.html>


More information about the postgis-users mailing list