[pyar] copiando imagenes

Horacio Francisco Sebastian Duran Barrionuevo horacio.duran en gmail.com
Mar Nov 9 07:32:49 ART 2010


On Tue, 09 Nov 2010 10:44:05 +0100
David Moreno <lamenteel en gmail.com> wrote:

> Hola
> 
>     Estoy intentando crear una tienda online y para conseguir las
> imagenes de los productos, las descargo de mi mayorista con wget y
> luego, con python, las renombro y pongo en el sitio adecuado para
> que  la web las encuentre.
> 
> muchas algunas veces no existe la imagen del producto y tengo que
> poner la tipica imagen de "sin imagen" que he llamado noimage.jpg,
> por eso lo que hago es copiarla antes y si existe la del producto,
> esta ultima machaca la de "sin imagen"
> 
> los if anidados son porque el nombre del archivo es el numero de
> referencia del producto con varios ceros delante
> 
> como detalle, me crea un archivo en el que me indica el porcentaje de
> trabajo hecho
> 
> el resultado que tengo es bueno, pero tarda una eternidad en terminar
> la ejecución ¿podeis ayudarme con eso? gracias. a continuación pego
> el codigo:
> 
> 
> #! /usr/bin/python
> # coding: utf-8
> # renombra y mueve las imagenes a la web
> 
> import os
> 
> TOTAL=716258
> 
> os.system("date")
> for numero in range (10100,TOTAL,1):
>     if numero <100000:
>         [...]snip[...]
Esto seria un poco mas corto haciendo strnumero = '%06d' % numero
Aca chequeando te ahorras bastante tiempo:
if
os.path.isfile(/root/www.infortisa.com/spa/item/extractimg.cgi\?action\=normal\&code\="
+strnumero):
> os.system("cp
> -fru /root/www.infortisa.com/spa/item/extractimg.cgi\?action\=normal\&code\="
> + strnumero +
> " /var/www/components/com_virtuemart/shop_image/product/pics/" +
> strnumero + ".jpg 2> /dev/null &")
else:
>     os.system("cp /root/scripts/noimage.jpg /var/www/components/com_virtuemart/shop_image/product/pics/"
> + strnumero + ".jpg &")  
Que dicho sea de paso capaz te conviene hacer un link simbolico en vez
de copiar todas las veces.
> HECHO = numero/(TOTAL /100)
> os.system("echo Ultimo Nº:" + strnumero + " de " + str(TOTAL) + " - "
> + str(HECHO) + "\% > ./log.txt")
No seria mas limpio tener el archivo abierto y escribirle adentro?
> os.system("mogrify -resize
> 200 /var/www/components/com_virtuemart/shop_image/product/pics/*")
Creo que lo que te puede estar tomando mas tiempo es esto aca. cuanto
tarda tirarlo desde consola??
> os.system("date")
> 
> 
Espero no haber mandado fruta y que te sirva de algo.
--
perrito



More information about the pyar mailing list