import Image
import os
for dirname, dirs, files in os.walk("."):
for filename in files:
try:
im = Image.open(os.path.join(dirname,filename))
except IOError:
print "error opening file :: " + os.path.join(dirname,filename)
print im.size
Aquí intento imprimir el tamaño de todos los archivos en un directorio (y sub). Pero sé que im
está fuera del alcance cuando está en la línea im.size
. Pero, ¿cómo lo hago sin usar los bloques else
o finally
? se muestraAlcance variable y Try Catch en python
el siguiente error:
Traceback (most recent call last):
File "batch.py", line 13, in <module>
print im.size
NameError: name 'im' is not defined
'alcance de im' cuenta no es limitado a la' try' bloque; esto no es C++. – cdhowie
@cdhowie: en ese caso, ¿por qué el error anterior? – shahalpk
Se muestra el error porque la variable 'im' no se define correctamente si falla' Image.open', por lo que no existe cuando intenta acceder al atributo '.size'. –