MI HELLO WORLD RECURSIVO EN PYTHON

La simplicidad es la clave de la verdadera elegancia.

Coco Chane

Aproximadamente en estas fechas pero un año atrás me enfrentaba ante un nuevo reto C#. El artículo puedes verle aquí. Pues tal parece que cada termino de ciclo el destino me tiene preparado nuevos retos y en este caso mi maldita arma sera Python. Sobre este lenguaje mi conocimiento puedo decir que es basicon he hecho uno que otro script pero para esto se necesita algo mas que algo básico. En fin vamos a darle caña a esto.

Antes que anda quiero aclarar que el titulo hello world recursivo es solo para causar curiosidad ya que en realidad el algoritmo que voy a realizar si es Recursivo pero como es el primer fragmento de un proyecto sera como mi hello world.

Bases

Python es un lenguaje de programación interpretado, diseñado por Guido Van Rossumin cuya filosofía hace hincapié en la legibilidad de su código. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional.

La recursividad consiste en funciones que se llaman a sí mismas, evitando el uso de bucles y otros iteradores. En pocas palabra como alguna vez me dijo un profe del TEC de celaya “Rojas”. Es la forma elegante de hacer ciclos muchacho. Por cierto estas reprobado. );

Teniendo en cuenta todo esto vamos a resolver el desgraciado problema.

Problema

Se necesita crear un programa que sea capaz de descargar información de manera automática y hacer un auto-resize. Sobre la descarga el algoritmo debe ser capaz de eliminar una carpeta si uno lo requiere o en caso contrario crear una nueva con algún tipo de identificador

Para esto vamos a ser uso de librerías y algo que me sorprende de Python es lo fácil de obtenerla, El desgraciado si que mola en esta proceso. Y estas son : Pathlib y Shutil

la función consecutiveFolder es la recursiva que usa como parametro de salida la existencia de la carpeta dada esta condición devuelve el nombre de carpeta para que esta pueda estructurar el directorio con el método restructureDirectory . De esta manera podrá dejar el programa ejecutándose y su por extraña razón se topara con un directorio igual este no lo sobre escribe si no que crea uno diferente.

from pathlib import Path
from shutil import rmtree

class Arca:

    def restructureDirectory(self,name,override):
        if override :
            rmtree(name)
            return name
        else :
            _folder = self.consecutiveFolder(name)
            Path(_folder).mkdir()
            return _folder       

    def consecutiveFolder(self,folder,iteration=1) :
        resource = folder+'_'+ str(iteration)
        _path = Path(resource)
        if( not _path.exists() ) :
            return resource
        else :
            index = iteration + 1 
            return self.consecutiveFolder(folder,iteration=index)

#Prueba
arca = Arca()
arca.restructureDirectory('prueba',False)

Apenas va comenzando este programa pero quería ver como esta el POO en Python. En cuanto esto este un poco mas en forma le dedicare un post.

Referencias

https://docs.python.org/3/library/pathlib.html#pathlib.Path.mkdir

https://docs.python.org/3/library/shutil.html

https://entrenamiento-python-basico.readthedocs.io/es/latest/leccion5/funciones_recursivas.html

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *