[Tutor] Break stament issue

James Reynolds eire1130 at gmail.com
Tue Jun 14 22:18:20 CEST 2011


On Tue, Jun 14, 2011 at 2:59 PM, Susana Iraiis Delgado Rodriguez <
susana.delgado_s at utzmg.edu.mx> wrote:

> Hello members!
>
> I'm doing a script that needs to loop to get some information, in order to
> do that I'm using modules from OGR and Mapnik. These to get data from
> shapefiles, but some of the files have 0 elements, I wrote a line to
> validate it, but it hasn't worked, so I added a break to keep working. When
> I run the scipt I got the next error:
> Traceback (most recent call last):
>   File "<pyshell#0>", line 1, in <module>
>     import mapnik_punto_sin_duda
>   File "C:\Python26\mapnik_punto_sin_duda.py", line 23
>     break
>    ^
> IndentationError: unexpected indent
>
> But I've read about this stamentet's use and I don't understand the reason
> I'm failing, the complete script is:
> import mapnik
> import os,fnmatch
> from mapnik import LineSymbolizer,PolygonSymbolizer,PointSymbolizer
> from osgeo import ogr,gdal,osr
>
> #Registra todos los drivers de GDAL
> file_list = []
> #Crear variable para buscar dentro de carpetas en el sistema
> folders = None
> #Se asigna el directorio raiz donde se van buscar los archivos, se hace un
> recorrido en la raiz
> for root, folders, files in os.walk( "c:\\" ):
>         #Agregar a la lista los elementos que traiga os.path.join, los
> archivos que terminen en extension .shp
>         for filename in fnmatch.filter(files, '*.shp'):
>                 file_list.append(os.path.join(root, filename))
> #Recorrer la lista que se creo
> for row, filepath in enumerate(file_list, start=1):
> #Dividir la ruta en dos: directorio y nombre de archivo
>         dir(LineSymbolizer().stroke)
>         shapeData = ogr.Open(filepath)
>         shp = 'Error al abrir el archivo' +filepath
>         if shapeData is None:
>                 print shp
>                 break
>         else:
>                 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:
>                         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")
>                         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."
>                 elif geo == 2:
>                         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")
>                         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."
>                 elif geo == 1:
>                         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)
>                         #s.rules.append(blue)
>                         m.append_style('My Style',s)
>                         lyr = mapnik.Layer('world',"+proj=latlong
> +datum=WGS84")
>                         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."
>                 else:
>                         print "Algo fallo y no entro a ninguna de las
> geometrias"
> print "Listo"
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
>


























well i'm not 100% what's going on because it appears to line up when I copy
it to my IDE, but you are mixing tabs or # of space indents, you will raise
that error, as an example:
a= None
if a is None:
    print 'a'
     print True

The print 'a' line is four spaces (my default) and the print True is five.
When run it raises the following:

    print True
>     ^
> IndentationError: unexpected indent


On a side note, if what you want to do is keep working while you work on the
rest of it, you should use the pass statement. At least that is what I do.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20110614/ebd69fc1/attachment-0001.html>


More information about the Tutor mailing list