Python Shapefile to CSV converter

This script exports the data content (tabular data) of a shapefile and the bounding box of every object to csv format

"""
Shapefile export
"""
import shapelib, dbflib, string
 
SHAPEFILE="shpname"
 
shp = shapelib.ShapeFile(SHAPEFILE)
dbf = dbflib.DBFFile(SHAPEFILE)
 
sCount = shp.info()[0]
dCount = dbf.record_count()
 
if sCount <> dCount:
	raise "Error: shape  number %s (%d) differs from  dbf records (%d) " %(SHAPEFILE,sCount,dCount)
 
 
#print l'header!
header = dbf.read_record(0)
#print header.keys()
intestazione = string.join(header.keys(),"|")
intestazione += "|XMIN|YMIN|XMAX|YMAX"
 
print intestazione
 
#read the dbf file 
for i in range (dbf.record_count() ):
	rc = dbf.read_record(i)
	sc = shp.read_object(i)
	row = ""
	for value in rc.values():
		row += "%s|" %(value)
	#print the  extent/envelope
	(min,max) = sc.extents()
	xmin = min[0]
	ymin = min[1]
	xmax = max[0]
	ymax = max[1]
 
	row += "%f|%f|%f|%f" %(xmin,ymin,xmax,ymax)
	print row
	#print "\n"