[Python]Ir añadiendo elementos a una tabla

Iniciado por Debci, 1 Mayo 2010, 23:11 PM

0 Miembros y 2 Visitantes están viendo este tema.

Debci

Hola a todos, he codeado algo en python que me va mostrando resultados de una busqueda, lo que quiera hacer es ir añadiendo dichos elementos a una lista, luego recorrerla y mostrarla.

El problema es que no se como añadirlos por indice.
Comentar que vengo de java y tengo un nivel alto de programacion pero python he programado sin leer ni una puñetera referencia.

Saludos

leogtz

Código (python) [Seleccionar]
#!/usr/bin/python
lista = [1, 2, 3, 4, 5]
lista.insert(0, 123)
print lista
lista.insert( 5, 123)
print lista
for i in range(len(lista)):
print lista[i]
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Debci

Y como puedo declarar la lista como inicialmente vacia?

Saludos

leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

Debci

He llegado a esa misma conclusion, pero por algun motivo mi programa no funciona, haber si ven que error estoy cometiendo:

Código (python) [Seleccionar]

#!/usr/bin/env python
# http://www.delincuentedigital.com.ar/
# Editado por Debci
import urllib
import re
import os
os.system('clear')
sitio = "http://www.milw0rm.com/search.php?dong="
dong = (raw_input('[!]Busqueda:\n'))
descarga = (raw_input('[!]Desea descargar todos los exploits que encuentre? (Si o No)\n'))
source = urllib.urlopen(sitio+dong).read()
founds = re.findall("href=\"/exploits/\d+",source)
encontrados = len(founds)
corredor = 0
lista = []

if encontrados == 1:
print "\n[+]Su busqueda devolvio",encontrados,"resultado\n"
elif encontrados == 0:
        print "\n[-]No se ha encontrado ningun resultado\n"
else:
print "\n[+]Su busqueda devolvio",encontrados,"resultados\n"
if len(founds) >=1:
for found in founds:
  found = found.replace("href=\"","")
 
  print "http://www.milw0rm.com"+found
  enlace = "http://www.milw0rm.com"+found
  lista.insert(corredor, enlace)
  corredor+=corredor
       
if descarga == "si" or descarga == "Si" or descarga == "SI":
        for i in len(lista):
os.system("wget",lista[i])


El programa busca exploits en milworm y opcionalmente los descarga.

Saludos

^Tifa^

#5
Arregla el ultimo IF por lo siguiente:

Código (python) [Seleccionar]


if descarga == "si" or descarga == "Si" or descarga == "SI":
        for i in range(len(lista)):
  os.system("wget "+lista[i])


Debci

Pero que tiene mi code para no arrancar?
Arroja un bonito:
Citar
root@bt:~/Desarrollo/Python# ./BuscadorExploits.py
  File "./BuscadorExploits.py", line 35
    print "Hola"
        ^
IndentationError: expected an indented block


Saludos


^Tifa^

Acabo de probar tu codigo con el ultimo arreglo que te especifique... y funciona.

Ahora, ten en cuenta que Python es un interprete obsesivo con las Tabulaciones en el codigo  ;)  tienes que Tabular las expresiones que vayas haciendo... de lo contrario se queja como te esta diciendo, toma tu codigo nuevamente pero arreglada la ultima condicion:

Código (python) [Seleccionar]


import urllib
import re
import os
os.system('clear')
sitio = "http://www.milw0rm.com/search.php?dong="
dong = (raw_input('[!]Busqueda:\n'))
descarga = (raw_input('[!]Desea descargar todos los exploits que encuentre? (Si o No)\n'))
source = urllib.urlopen(sitio+dong).read()
founds = re.findall("href=\"/exploits/\d+",source)
encontrados = len(founds)
corredor = 0
lista = []

if encontrados == 1:
        print "\n[+]Su busqueda devolvio",encontrados,"resultado\n"
elif encontrados == 0:
        print "\n[-]No se ha encontrado ningun resultado\n"
else:
        print "\n[+]Su busqueda devolvio",encontrados,"resultados\n"
if len(founds) >=1:
        for found in founds:
                  found = found.replace("href=\"","")

                  print "http://www.milw0rm.com"+found
                  enlace = "http://www.milw0rm.com"+found
                  lista.insert(corredor, enlace)
                  corredor+=corredor

if descarga == "si" or descarga == "Si" or descarga == "SI":
        for i in range(len(lista)):
  os.system("wget "+lista[i])


Novlucker

Como te dice Tifa, la última línea de código no la tienes indentada, así que cuando busca la variable "i" la busca fuera del for, y afuera no existe :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Debci

y como delimito los limites de los bucles y tal?
Tabulacion?
Es que como no hay llaves ni nada por el estilo...

Saludos y gracias a todos