problema con tipo de variable
David Asorey Álvarez
forodejazz en yahoo.es
Vie Dic 5 08:52:27 CET 2003
--- Ana Yndurain <yndu en telecable.es> escribió:
> Hola a todos, sigo terminando mi pagina web, y me he
> encontrado con un
> nuevo problemilla
>
> En un momento dado tengo unos cuanto checkbuttons
> para seleccionar unos
> ficheros a borrar.
> Estos checkbuttons los declaro de la siguiente
> manera:
>
> <input type=checkbox name=CAdjuntoSelect[] value=%s>
>
> Asi, al pasar los input al siguiente script, se me
> crea un vector q
> contiene los checkbox q esten seleccionados con sus
> correspondientes
> valores. Por lo tanto, solo tengo q recorrer el
> vector y borrar los
> archivos q se encuentren ahi.
>
> Hasta aqui bien. El problema es cuando solo
> seleccionan un archivo,
> cuando intento hacer:
>
> for i in form['CAdjuntoSelect[]']:
> loquesea
>
> me dice que:
> [... sigue ...]
Yo utilizo la herramienta CherryPy para desarrollar
web en Python, pero también me surge el mismo
"problema" (no es un problema realmente :-)
Esto es lo que yo hago:
Supongamos que en la variable "lista_archivos" vienen
los nombres de los ficheros que quieren borrar
(seleccionados en un 'checkbox'). Puede ocurrir lo
siguiente cuando recoges los datos y vas a procesar
esta lista:
1. No han seleccionado nada: la variable viene vacía o
sencillamente, no "viene".
2. Seleccionan un sólo 'checkbox': la variable NO es
una lista o tupla, probablemente sea un 'String'
3. Seleccionan varios 'checkbox': la variable es una
lista o tupla.
Este es el pseudo-código que yo utilizo para estos
menesteres:
from types import *
if not lista_archivos:
# Sacamos aviso, o reenviamos a otra página
return "Selecciona algo, gañán ;-)"
if type(lista_archivos) == StringType:
# Convierto la variable lista_archivos, que
# es un string en una tupla:
lista_archivos = (lista_archivos, )
# Ahora recorremos la variable lista_archivos
# con la seguridad de que es una lista o tupla,
# y que podemos recorrerla sin problemas.
for arch in lista_archivos:
# Proceso el archivo:
procesar_archivo(arch)
Un saludo.
David
_______________________________________________________________
Yahoo! Sorteos
¡Ya puedes comprar Lotería de Navidad!
http://yahoo.ventura24.es/
Más información sobre la lista de distribución Python-es