Can you try to split it into fonctions
Because it is hard to read it.
Envoyé depuis mon HTC
----- Reply message -----
De : "Susana Iraiis Delgado Rodriguez" <susana.delgad...@utzmg.edu.mx>
Pour : <tutor@python.org>
Objet : [Tutor] Python loop isn't working
Date : ven., août 5, 2011 18:14
Hello list!
I have a python script which works with other libraries in order to create
maps. The script looks for an extension in a specific directory and with mapnik
makes the thumbnails.
The module works fine from Python command line and Pyton IDLE, but I need this
program to run from MS-DOS, when I added the try statement it started to fail.
Module runs but doesn't do what I need. Console shows:
C:\Python26>shp2png.py C:\\ .png
Iniciando...
Listo
What am I doing wrong?
import mapnik
import os,fnmatch, sys
from mapnik import LineSymbolizer,PolygonSymbolizer,PointSymbolizer
from osgeo import ogr,gdal,osr
directorio = sys.argv[1]
extension = sys.argv[2]
try:
if len(sys.argv) == 3:
print 'Iniciando...'
file_list = []
folders = None
for root, folders, files in os.walk( directorio+'\\' ):
for filename in fnmatch.filter(files, extension):
file_list.append(os.path.join(root, filename))
for row, filepath in enumerate(file_list, start=1):
dir(LineSymbolizer().stroke)
shapeData = ogr.Open(filepath)
shp = 'Error al abrir el archivo' +filepath
if shapeData is None:
print shp
continue
layer = shapeData.GetLayer()
defn = layer.GetLayerDefn()
geo = defn.GetGeomType()
(ruta, filename) = os.path.split(filepath)
archivo = os.path.splitext(filename)
i = archivo[0]+'.png'
m = mapnik.Map(800,500,"+proj=latlong +datum=WGS84")
m.background = mapnik.Color('#EBEBEB')
s = mapnik.Style()
r=mapnik.Rule()
if geo == 3 or geo == -2147483645:
print "Trabajando mapa "+ruta+"\\"+filename+" con geometria "+
str(geo)
r.symbols.append(mapnik.PolygonSymbolizer(mapnik.Color('#EB784B')))
r.symbols.append(mapnik.LineSymbolizer(mapnik.Color('rgb(170%,170%,170%)'),0.9))
s.rules.append(r)
m.append_style('My Style',s)
lyr = mapnik.Layer('world',"+proj=latlong +datum=WGS84")
try:
lyr.datasource = mapnik.Shapefile(base=ruta,file=archivo[0])
lyr.styles.append('My Style')
m.layers.append(lyr)
m.zoom_to_box(lyr.envelope())
mapnik.render_to_file(m,i, 'png')
print "La imagen " +i+ " fue creada."
except RuntimeError, e:
print 'Shapefile invalida'
continue
elif geo == 2 or geo == -2147483646:
print "Trabajando mapa "+ruta+"\\"+filename+" con geometria "+
str(geo)
r.symbols.append(mapnik.LineSymbolizer(mapnik.Color('#EB784B'),0.9))
s.rules.append(r)
m.append_style('My Style',s)
lyr = mapnik.Layer('world',"+proj=latlong +datum=WGS84")
try:
lyr.datasource = mapnik.Shapefile(base=ruta,file=archivo[0])
lyr.styles.append('My Style')
m.layers.append(lyr)
m.zoom_to_box(lyr.envelope())
mapnik.render_to_file(m,i, 'png')
print "La imagen " +i+ " fue creada."
except RuntimeError, e:
print 'Shapefile invalida'
continue
elif geo == 1 or geo == -2147483647:
print "Trabajando mapa "+ruta+"\\"+filename+" con geometria "+
str(geo)
blue =
mapnik.PointSymbolizer('C:\Python26\icono.png','png',50,50)
blue.allow_overlap = True
s=mapnik.Style()
r=mapnik.Rule()
r.symbols.append(blue)
s.rules.append(r)
m.append_style('My Style',s)
lyr = mapnik.Layer('world',"+proj=latlong +datum=WGS84")
try:
lyr.datasource = mapnik.Shapefile(base=ruta,file=archivo[0])
lyr.styles.append('My Style')
m.layers.append(lyr)
m.zoom_to_box(lyr.envelope())
mapnik.render_to_file(m,i, 'png')
print "La imagen " +i+ " fue creada."
except RuntimeError, e:
print 'Shapefile invalida'
continue
else:
print "Algo fallo y no entro a ninguna de las geometrias"
print "Listo"
else:
print "Tus argumentos no son correctos"
except IndexError:
print "Tus argumentos no son correctos"
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor