11-12 de Mayo 2010
10-18 Horas
Auditorio Sotero Prieto 2
Conjunto Amoxcali. Facultad de Ciencias.
Ciudad Universitaria, México D.F.
Supongamos que tenemos una carpeta con los siguientes archivos HTML:
Cada archivo HTML tiene el siguiente código:
El objetivo es cambiar este código en todas esas páginas HTML:
<a href=”http://www.pagina.com/cambiameConPython/”> Link </a>
por
<a href=”http://www.pagina.com/cambiadoConPython/”> Link </a>
para ello ocupamos el siguiente código en Python:
def cambiaTextoEnArchivo(archivo, cadenaABuscar, cadenaParaReemplazar):
print(archivo);
try:
#Abre el archivo para lectura de datos
archivoLectura = open(archivo,”r”);
textoOriginal=archivoLectura.read();
archivoLectura.close();
except (RuntimeError, TypeError, NameError, IOError):
print (“Error en la ubicacion o nombre del archivo”);
exit();
#Modifica la cadena del texto original del archivo
if textoOriginal.find(cadenaABuscar) >= 0:
textoModificado = textoOriginal.replace(cadenaABuscar,cadenaParaReemplazar);
#Abre el archivo para escritura de datos
archivoEscritura = open(archivo,”w”);
archivoEscritura.writelines(textoModificado);
archivoEscritura.close();
print (“Se ha modificado el texto original.”);
else:
print (“No se encontro el texto buscado en el texto original. “);
print (“No se realizo ningun cambio.”);
import glob;
import os;
dir=’/home/drickmees/html/*.html’;
try:
ficheros=glob.glob(dir);
except (RuntimeError, TypeError, NameError, IOError, OSError):
print (“Error en la ruta del directorio”);
exit();
cadenaABuscar=”http://www.pagina.com/cambiadoConPytho2n/”;
cadenaParaReemplazar=”http://www.pagina.com/cambiameConPython/”;
i=1;
for fichero in (ficheros):
cambiaTextoEnArchivo(fichero, cadenaABuscar, cadenaParaReemplazar);
i=i+1;
if i<2:
print(“No hay archivos en el directorio”);
Ver la imagen del código:

Espero sea de utilidad.
Referencías:
ArchivosyDirectoriosConPython
En la disciplina matemática del álgebra lineal, el algoritmo de Strassen, llamado así por Volker Strassen, es un algoritmo usado para la multiplicación de matrices. Es asintóticamente más rápido que el algoritmo de multiplicación de matrices estándar, pero más lento que el algoritmo más rápido conocido, y es útil en la práctica para matrices grandes.
Dentro de lo que es la programación no lineal existe un método de búsqueda de máximos o mínimos de funciones llamado Método Simplex (no confundir con el Simplex de programación lineal), este método fue modificado por Nelder y Mead obteniendo el MSM (Método Simplez Modificado). Me parecio interesante, sin embargo tiene la desventaja de que no usa gradientes.
El siguiente algoritmo recorre un array de tamaño n de tal forma que checa si el i-esimo elemento es menor a los demás elementos tales que i>i+j con j que va de i+1 hasta n, en caso de no serlo va sustituyendo el elemento i+j menor por el elemento i de tal forma que el array se ordena de menor a mayor. Este algoritmo corresponde a una pregunta de un examen de diseño y análisis de algoritmos.
El algoritmo esta diseñado en Python
#Python 2.5
#ordenacionXSustitucion.py
a=[9,18,30,2,6,8,3,98,23,434,98,7,66,45,90,12,232,802]
print a
for i in range(0,len(a)-1):
for j in range(i,len(a)):
if a[i]>a[j]:
x=a[j]
a[j]=a[i]
a[i]=x
print a
x=raw_input(“Presiona Enter para salir. “)





Método Simplex Modificado
Comentarios