यदि आप इसे पायथन के साथ प्रोग्राम करना चाहते हैं तो संभवतः GDAL / OGR इसे करने का सबसे अच्छा तरीका है। नमूना उदाहरण कोड को देखें जो PostgreSQL से SHP फ़ाइल में तालिका पर प्रतिलिपि बनाता है। उदाहरण सही नहीं है, लेकिन आप अपनी आवश्यकताओं के अनुसार इसे आसानी से संशोधित कर सकते हैं।
import os
os.environ['PATH'] = "c:\\Program Files\\GDAL\\bin" + ';' + os.environ['PATH']
os.environ['GDAL_DRIVER_PATH'] = "c:\\Program Files\\GDAL\\bin\\gdal\\plugins-optional"
os.environ['GDAL_DATA'] = "c:\\Program Files\\GDAL\\bin\\gdal-data"
import ogr
conn=ogr.Open("PG: host=192.168.5.3 dbname=some_database user=postgres password=xxxx")
if conn is None:
print 'Could not open a database or GDAL is not correctly installed!'
sys.exit(1)
output = "d:\\points.shp"
# Schema definition of SHP file
out_driver = ogr.GetDriverByName( 'ESRI Shapefile' )
out_ds = out_driver.CreateDataSource(output)
out_srs = None
out_layer = out_ds.CreateLayer("point", out_srs, ogr.wkbPoint)
fd = ogr.FieldDefn('name',ogr.OFTString)
out_layer.CreateField(fd)
layer = conn.GetLayerByName("point_data")
#layer = conn.ExecuteSQL(sql)
feat = layer.GetNextFeature()
while feat is not None:
featDef = ogr.Feature(out_layer.GetLayerDefn())
featDef.SetGeometry(feat.GetGeometryRef())
featDef.SetField('name',feat.TITLE)
out_layer.CreateFeature(featDef)
feat.Destroy()
feat = layer.GetNextFeature()
conn.Destroy()
out_ds.Destroy()
यदि आपके प्रोग्रामिंग का वातावरण विंडोज़ है, तो आप यहाँ से GDAL / OGR डाउनलोड कर सकते हैं । कुछ अच्छी शुरुआती सामग्री जो आप यहाँ पा सकते हैं । आशा है ये मदद करेगा।