I'm starting to use xlwt to create excel files, my excel sheet is designed
to get information from a python module. The data came from a raster file,
the problem is that some kind of sign or character doesn't allow the file to
be written. This is my script:

import sys, os, time, socket, codecs
from xlwt import Workbook
from osgeo import gdal
from osgeo.gdalconst import *
from PIL import Image

gdal.AllRegister()
file_list = []
folders = None
 # look in this (root) folder for files with specified extension
for root, folders, files in os.walk( "C:\\" ):
 file_list.extend(os.path.join(root,fi) for fi in files if
fi.endswith(".tif") or fi.endswith(".tiff") or fi.endswith(".gtif") or
fi.endswith(".ecw") or fi.endswith(".bil") or fi.endswith(".til") or
fi.endswith(".jpeg") or fi.endswith(".img") or fi.endswith(".jpg"))
wrkbk = Workbook()
 #Add named parameter to allow overwriting cells: cell_overwrite_ok=True
wksht = wrkbk.add_sheet('raster')
wksht.row(0).write(0,'ruta')
wksht.row(0).write(1,'nombre')
wksht.row(0).write(2,'x_min')
wksht.row(0).write(3,'x_max')
wksht.row(0).write(4,'y_min')
wksht.row(0).write(5,'y_max')
wksht.row(0).write(6,'ancho_pixel')
wksht.row(0).write(7,'alto_pixel')
wksht.row(0).write(8,'num_filas')
wksht.row(0).write(9,'num_columnas')
wksht.row(0).write(10,'num_bandas')
wksht.row(0).write(11,'proyeccion')
wksht.row(0).write(12,'fecha_modificacion')
wksht.row(0).write(13,'maquina_host')
wksht.row(0).write(14,'usuario')

for row, filepath in enumerate(file_list, start=1):
 #Llenar lista de archivos y ruta
 unicode(filepath, errors='ignore')
 wksht.row(row).write(0, filepath)
 #Escribir solo el nombre del archivo
 (ruta, filename) = os.path.split(filepath)
 wksht.row(row).write(1, filename)
 unicode(filename, errors='ignore')
 # Obtener coordenadas x/y
 dataset = gdal.Open(filepath, GA_ReadOnly)
 if dataset is None:
  print 'Could not open...' +filename

 #iNFORMACIoN GEOREFERENCIA
 else:
  xOrigin, yOrigin, pixelWidth, pixelHeight, a, b =
dataset.GetGeoTransform()
  geotransform = dataset.GetGeoTransform(

 #Obtener coordenadas
  x_min = geotransform[0]
  wksht.row(row).write(2,x_min)
  y_max = geotransform[3]
  wksht.row(row).write(5,y_max)
  pixel_width = geotransform[1]
  wksht.row(row).write(6,pixel_width)
  pixel_height = geotransform[5]
  wksht.row(row).write(7,pixel_height)

 #Obtener tamano de la imagen
  rows = dataset.RasterYSize
  cols = dataset.RasterXSize
  bands = dataset.RasterCount

  wksht.row(row).write(8,rows)
  wksht.row(row).write(9,cols)
  wksht.row(row).write(10,bands)

  x_max= (pixel_width - x_min) / pixel_width
  y_min = (y_max - x_min) / pixel_height
  wksht.row(row).write(3,x_max)
  wksht.row(row).write(4,y_min)


 #Obtener la proyeccion
  n = os.path.splitext(filepath)
  tif = n[0]+'.tif'
  tiff = n[0]+'.tiff'
  gtif = n[0]+'.gtif'
  ecw = n[0]+'.ecw'
  bil = n[0]+'.bil'
  til = n[0]+'.til'
  img = n[0]+'.img'
  jpg = n[0]+'.jpg'
  jpeg = n[0]+'.jpeg'
  if os.path.lexists(tif) or os.path.lexists(tiff) or os.path.lexists(gtif)
or os.path.lexists(ecw) or os.path.lexists(bil) or os.path.lexists(til) or
os.path.lexists(jpg) or os.path.lexists(jpeg):
   wksht.row(row).write(11, dataset.GetProjection())
   #print filename
  else:
   wksht.row(row).write(11, "No tiene proyeccion")

 #Obtner el nombre del host del archivo
  wksht.row(row).write(13, socket.gethostname())

 #Obtener usuario
  wksht.row(row).write(14,os.environ.get("USERNAME"))

 #Obtener fecha de modificacion
   t = time.strftime("%m/%d/%Y %I:%M:%S
%p",time.localtime(os.path.getmtime(filepath)))
  wksht.row(row).write(15, t)

codecs.EncodedFile(wrkbk, "UTF8",errors='ignore')
wrkbk.save('rasters.xls')

SEARCH_PATH = os.getcwd()
TARGET_FILE = os.path.realpath('shp.xls')
print "Buscando en", SEARCH_PATH, "and writing to", TARGET_FILE
print "Encontrando archivos..."
print "Escribiendo archivo de Excel..."
print "Listo."
The error is:
Python 2.6.6 (r266:84297, Aug 24 2010, 18:46:32) [MSC v.1500 32 bit (Intel)]
on
win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import crawler_img
ERROR 4: `C:\Archivos de programa\WinAce\menuimg.img' not recognised as a
suppor
ted file format.
Could not open...menuimg.img
ERROR 4: `C:\Archivos de programa\WinAce\toolimg.img' not recognised as a
suppor
ted file format.
Could not open...toolimg.img
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\46MPK9B5\visitor[6].jpg' not recognised as a
sup
ported file format.
Could not open...visitor[6].jpg
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\46MPK9B5\visitor[7].jpg' not recognised as a
sup
ported file format.
Could not open...visitor[7].jpg
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\46MPK9B5\visitor[8].jpg' not recognised as a
sup
ported file format.
Could not open...visitor[8].jpg
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\6LF1W0O1\visitor[1].jpg' not recognised as a
sup
ported file format.
Could not open...visitor[1].jpg
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\6LF1W0O1\visitor[2].jpg' not recognised as a
sup
ported file format.
Could not open...visitor[2].jpg
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\MZ2Z7NIK\visitor[1].jpg' not recognised as a
sup
ported file format.
Could not open...visitor[1].jpg
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\MZ2Z7NIK\visitor[2].jpg' not recognised as a
sup
ported file format.
Could not open...visitor[2].jpg
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\PBD68S04\safe_imageCAO4JFN0.jpg' does not
exist
in the file system,
and is not recognised as a supported dataset name.
Could not open...safe_imageCAO4JFN0.jpg
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\UQM8VB8W\visitor[1].jpg' not recognised as a
sup
ported file format.
Could not open...visitor[1].jpg
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\UQM8VB8W\visitor[2].jpg' not recognised as a
sup
ported file format.
Could not open...visitor[2].jpg
ERROR 4: `C:\Documents and Settings\sinventario\Configuraci¾n local\Archivos
tem
porales de Internet\Content.IE5\X6Q03YQD\visitor[1].jpg' not recognised as a
sup
ported file format.
Could not open...visitor[1].jpg
ERROR 4: `C:\Documents and
Settings\sinventario\Escritorio\Kosmo-2.0\bin\ext\sex
tante\help\es\es.unex.sextante.morphometry.surfaceSpecificPoints\clasificacion_f
ormas_terreno.jpg' not recognised as a supported file format.
Could not open...clasificacion_formas_terreno.jpg
ERROR 4: `C:\Documents and
Settings\sinventario\workspace\libs\sextante\help\es\
es.unex.sextante.morphometry.surfaceSpecificPoints\clasificacion_formas_terreno.
jpg' not recognised as a supported file format.
Could not open...clasificacion_formas_terreno.jpg
ERROR 4: `C:\Kosmo_Desktop_2.0_RC1_src\libs\sextante\help\es\
es.unex.sextante.mo
rphometry.surfaceSpecificPoints\clasificacion_formas_terreno.jpg' not
recognised
 as a supported file format.
Could not open...clasificacion_formas_terreno.jpg
ERROR 4: `C:\WINDOWS\ServicePackFiles\i386\netwlan5.img' not recognised as a
sup
ported file format.
Could not open...netwlan5.img
ERROR 4: `C:\WINDOWS\system32\drivers\netwlan5.img' not recognised as a
supporte
d file format.
Could not open...netwlan5.img
ERROR 4:
`C:\workspace\libs\sextante\help\es\es.unex.sextante.morphometry.surfac
eSpecificPoints\clasificacion_formas_terreno.jpg' not recognised as a
supported
file format.
Could not open...clasificacion_formas_terreno.jpg
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "crawler_img.py", line 118, in <module>
    wrkbk.save('rasters.xls')
  File "C:\Python26\lib\site-packages\xlwt\Workbook.py", line 634, in save
    doc.save(filename, self.get_biff_data())
  File "C:\Python26\lib\site-packages\xlwt\Workbook.py", line 609, in
get_biff_d
ata
    shared_str_table   = self.__sst_rec()
  File "C:\Python26\lib\site-packages\xlwt\Workbook.py", line 571, in
__sst_rec
    return self.__sst.get_biff_record()
  File "C:\Python26\lib\site-packages\xlwt\BIFFRecords.py", line 53, in
get_biff
_record
    self._add_to_sst(s)
  File "C:\Python26\lib\site-packages\xlwt\BIFFRecords.py", line 66, in
_add_to_
sst
    u_str = upack2(s, self.encoding)
  File "C:\Python26\lib\site-packages\xlwt\UnicodeUtils.py", line 50, in
upack2
    us = unicode(s, encoding)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xed in position 79:
ordinal
 not in range(128)
>>>
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to