CursosEmpresasBlogLiveConfPrecios

Cómo organizar las carpetas de tus proyectos

Clase 3 de 21 • Curso Profesional de Python

Clase anteriorSiguiente clase

Contenido del curso

Introducción

  • 1
    ¿Qué necesitas saber para tomar el curso?

    ¿Qué necesitas saber para tomar el curso?

    03:15 min
  • 2
    ¿Cómo funciona Python?

    ¿Cómo funciona Python?

    07:49 min
  • 3
    Cómo organizar las carpetas de tus proyectos

    Cómo organizar las carpetas de tus proyectos

    Viendo ahora

Static Typing

  • 4
    ¿Qué son los tipados?

    ¿Qué son los tipados?

    10:26 min
  • 5
    Tipado estático en Python

    Tipado estático en Python

    14:26 min
  • 6
    Practicando el tipado estático

    Practicando el tipado estático

    13:33 min

Conceptos avanzados de funciones

  • 7
    Scope: alcance de las variables

    Scope: alcance de las variables

    06:32 min
  • 8
    Closures

    Closures

    08:21 min
  • 9
    Programando closures

    Programando closures

    07:00 min
  • 10
    Decoradores

    Decoradores

    06:19 min
  • 11
    Programando decoradores

    Programando decoradores

    13:05 min

Estructuras de datos avanzadas

  • 12
    Iteradores

    Iteradores

    13:52 min
  • 13
    La sucesión de Fibonacci

    La sucesión de Fibonacci

    14:01 min
  • 14
    Generadores

    Generadores

    07:22 min
  • 15
    Mejorando nuestra sucesión de Fibonacci

    Mejorando nuestra sucesión de Fibonacci

    06:53 min
  • 16
    Sets

    Sets

    10:58 min
  • 17
    Operaciones con sets

    Operaciones con sets

    06:09 min
  • 18
    Eliminando los repetidos de una lista

    Eliminando los repetidos de una lista

    05:20 min

Bonus

  • 19
    Manejo de fechas

    Manejo de fechas

    08:44 min
  • 20
    Time zones

    Time zones

    08:46 min

Conclusión

  • 21
    Completaste la trilogía. ¿Cómo seguir?

    Completaste la trilogía. ¿Cómo seguir?

    01:30 min
  • Tomar el examen del curso
    • Alfonso Morán

      Alfonso Morán

      student•
      hace 4 años

      📁Un módulo es cualquier archivo de Python. Generalmente, contiene código que puedes reutilizar.

      🗄 Un paquete es un conjunto de módulos. Siempre posee el archivo __init__.py. Una ejemplo de organizar los archivos de 🐍Python es de la siguiente manera.

      paquettes.png
        Kenyi Julberht Hancco Quispe

        Kenyi Julberht Hancco Quispe

        student•
        hace 4 años

        Buen resumen!

        Cesar Hernández Ramírez

        Cesar Hernández Ramírez

        student•
        hace 4 años

        Nice bro

      ALDO MATUS MARTINEZ

      ALDO MATUS MARTINEZ

      student•
      hace 4 años

      :snake: __init __.py When a new object is made, it is initialized by calling the init method on the object.

      __init__

      is pronounced “dunder init”: dunder is short for “double-underscore”.

        Reinaldo Mendoza

        Reinaldo Mendoza

        student•
        hace 4 años

        Muy buen dato, para tener en cuenta al referirnos a los archivos

        Javier Suárez Meerhoff

        Javier Suárez Meerhoff

        student•
        hace 4 años

        gracias!

      Daniel Alejandro Franco Meneses

      Daniel Alejandro Franco Meneses

      student•
      hace 4 años

      Si están usando WSL o una terminal Unix, pueden instalar con sudo apt-get install tree para ver un árbol de sus carpetas. Luego puedo ingresar a la carpeta de mi proyecto y ejecutar el comando tree.

      Se vería algo así:

      Yo pongo tree -I venv para ignorar la carpeta venv que esta llena de cosas. Si no lo pongo verás todos los directorios de tu proyecto.

        Alexander Sánchez

        Alexander Sánchez

        student•
        hace 4 años

        Interesante. muchas gracias. En OS X, con homebrew se puede instalar así:

        brew install tree
        Mauricio Gonzalez Falcon

        Mauricio Gonzalez Falcon

        student•
        hace 4 años

        Gracias por el aporte, instalado ya!

      Gabriel Salvador

      Gabriel Salvador

      student•
      hace 4 años

      El diccionario define a un módulo como cualquier archivo de python con código que se pueda reutilizar... que se pueda reutilizar.

        Reinaldo Mendoza

        Reinaldo Mendoza

        student•
        hace 4 años

        Bien simple esa deficinion

        José Jesús Enciso Mayo

        José Jesús Enciso Mayo

        student•
        hace 4 años

        Y luego te quedas como el jurado en ese episodio, ya que en varios cursos te dicen la.importancia de nunca copiar código o reutilizarlo tanto xD

      Oscar Eduardo Chaparro Blancas

      Oscar Eduardo Chaparro Blancas

      student•
      hace 4 años

      Si haz seguido la rama de cursos sugerida y ya pasaste por el curso de git/github, así como las entregas anteriores de Facundo, sin querer haz aprobado un curso que va tras bambalinas, que es el orden sugerido para el manejo de tus proyectos. Personalmente me ha servido mucho porque he aplicado esa metodología para ordenar los cursos del reto de DataAcademy y muchos mas, aún fuera de uso de python, como los cursos de SQL y esto hace que como profesionista, tenga una costumbre funcional y un orden general en mis proyectos. Esta clase deja ver la maravilla que es Platzi como plataforma de educación en la que los cursos se entrelazan en temas que quizá no son tan relevantes o no forman parte del foco del proyecto, pero que dan un plus a nuestro trabajo y a nuestro estilo profesional. Enhorabuena!

        Jesús Enrique Morocoima Marcano

        Jesús Enrique Morocoima Marcano

        student•
        hace 4 años

        Es verdad 100% de Acuerdo con usted compañero

      Miguel Angel Velazquez Romero

      Miguel Angel Velazquez Romero

      student•
      hace 4 años

      Que yo sepa la carpeta venv (que en realidad es un entorno virtual) por lo regular va en el .gitignore y en vez de la carpeta va un requirements.txt, donde la persona que descargue el proyecto puede hacer su propio entorno virtual (ya que aveces no es compatible con otros equipos), con su propia versión de Python, las dependencias necesarias e incluso sus propias versiones de las dependencias.

        Rogelio Enrique Carrera

        Rogelio Enrique Carrera

        student•
        hace 4 años

        Faltaría requirements.txt pero si, está es la estructura más usada.

        José Anderson Ramírez Ponte

        José Anderson Ramírez Ponte

        student•
        hace 4 años

        ambos paradigmas llevan al mismo resultado?

      Emmanuel Corral Marco

      Emmanuel Corral Marco

      student•
      hace 4 años

      How to organize your proyect folders

      To make this thema more simple Facundo introduces two concepts:

      • modules: A module is any python file, usually this is reusable in other python files, for example a function created to reuse.

      • packages: A package is a folder that contain many modules. In this folder, always there is _init.py, it's necessary to the package.

      package: - module_1 - module_2 - module_3 - module_n all modules are relationized to the __init__

      Example of directory project:

      • README

      • .gitignore

      • venve

      • package:

        • init.py
        • module_1.py
        • module_2.py
      • README: an explanation over our proyect, normally use a .md format.

      • .gitignore: file to ignore other files at the time to run.

      • venve: this is the folder with the envioment variables.

      Frameworks: Set of rules to the app run. They have them folders..

        María Jimena Rodríguez Contreras

        María Jimena Rodríguez Contreras

        student•
        hace 4 años

        gracias

      Carlos Esteban Lara Gil

      Carlos Esteban Lara Gil

      student•
      hace 4 años

      0.1 ¿Cómo organizar las carpetas de tus proyectos?

      Glosario

      Módulo

      Un módulo es cualquier archivo que termine con la extensión .py.

      • Generalmente un módulo tiene archivos que se pueden reutilizar

      Paquete

      Un paquete es un conjunto de módulos. init.py es el archivo que se usa para inicializar un paquete. Esto denota que una carpeta es un paquete.

      Así se vería la carpeta de un proyecto (Explicado con indentación):

      Proyecto: README.md .gitignore venv proyecto: __init__.py nave.py destino.py plataforma.py lanzamiento.py test.py validación.py
      • R E A D M E . m d: Explica como funciona el proyecto, github y gitlab lo toman para explicarle a otros desarrolladores como trabajar con él
      • .gi t i g n o re: Es un archivo que se usa para ignorar todos los archivos que no queremos que se suban a un repositorio remoto
      • ve n v todos los módulos que se usan para trabajar en el proyecto
      • El paquete del proyecto: *Componentes del proyecto
      Iván Mauricio Jaimes Niño

      Iván Mauricio Jaimes Niño

      student•
      hace 4 años

      Módulo en Python

      Un módulo puede contener:

      • Funciones
      • Clases
      • Variables
      • Código ejecutable
      • Atributos asociados con el módulos

      El nombre del módulo es el nombre del archivo (sin la extensión .py).

      Por ejemplo, en el siguiente diagrama la función printer y la clase Shape están definidas en el módulo utils.

      Selection_780.png

      Paquete en Python

      Un paquete en Python es un directorio que contiene uno o más módulos de Python.

      El archivo opcional "init.py" puede contener código que se ejecuta cuando un módulo se importa del paquete (inicialización). Según la documentación:

      Los archivos init.py son necesarios para que Python trate los directorios que contienen el archivo como paquetes. Esto evita que los directorios con un nombre común, como una cadena, oculten involuntariamente módulos válidos que aparecen más adelante en la ruta de búsqueda del módulo. En el caso más simple, init.py puede ser simplemente un archivo vacío, pero también puede ejecutar el código de inicialización del paquete o establecer la variable all, que se describe más adelante. (https://docs.python.org/3/tutorial/modules.html#packages)

      Alfonso Morán

      Alfonso Morán

      student•
      hace 4 años

      Qué es lo que debe contener el archivo init.py? es un archivo vacío?

        Luis Lira

        Luis Lira

        student•
        hace 4 años

        Sí, es un archivo vacío que sirve para que Python reconozca lo módulos.

        Alfonso Morán

        Alfonso Morán

        student•
        hace 4 años

        Gracias! 😄

      Gabriel Missael Barco

      Gabriel Missael Barco

      student•
      hace 4 años

      Cómo organizar las carpetas de tus proyectos

      Es importante comprender dos conceptos:

      • Módulo: Es cualquier archivo de Python. Generalmente, contiene código que puedes reutilizar 😃.
      • Paquete: Un paquete es una carpeta que contiene un conjunto de módulos. Siempre posee el archivo __init__.py. Estos módulos están relacionados.

      Un orden común de proyectos:

      - exploracion_espacial_proyecto. - README - .gitignore - venv - exploración espacial - `__init__.py` - nave.py - destino.py - tests.py

      Sin embargo, en cada proyecto puede ser diferente dependiendo de lo que se esté haciendo, ya que, por ejemplo, podrías usar algún *framework.*🤯

      Juan Carlos Ortiz Romero

      Juan Carlos Ortiz Romero

      student•
      hace 4 años

      una explicación sobre nuestro proyecto, normalmente usamos un formato .md. .gitignore: archivo para ignorar otros archivos en el momento de ejecutar. venve: esta es la carpeta con las variables de entorno. Frameworks: Conjunto de reglas para la ejecución de la aplicación. Las tienen carpetas.

        Daniel Choxin

        Daniel Choxin

        student•
        hace 4 años

        gracias

      Edkar Chachati

      Edkar Chachati

      student•
      hace 4 años

      Como Organizar las Carpetas de tus Proyectos

      Las carpetas se organizan por Paquetes y Módulos, estos últimos son cualquier archivo de Python. Generalmente, contiene código que puedes reutilizar

      Un Paquete es una carpeta que contiene módulos. Siempre posee el archivo init.py

        María Jimena Rodríguez Contreras

        María Jimena Rodríguez Contreras

        student•
        hace 4 años

        gracias

      Miguel Angel Reyes Moreno

      Miguel Angel Reyes Moreno

      student•
      hace 4 años

      Cómo organizar las carpetas de tus proyectos

      Módulo

      Un módulo es cualquier archivo de Python (o sea que termina con .py). Generalmente, contiene código que puedes reutilizar.

      Paquete

      Una carpeta que contiene módulos. Siempre posee el archivo __init__.py. (Se lee dunder init doy py).

      Paquetes
      MóduloMódulo
      MóduloMódulo
      MóduloMódulo
      exploracion_espacial
      nave.pydestino.py
      plataforma.pylanzamiento.py
      tests.pyvalidacion.py

      Estructura de proyecto:

      • README -> Explica cómo funciona el proyecto
      • .gitignore -> Cosas que no se subirán al repo
      • venv -> entorno virtual de Python
      • exploracion_espacial -> Paquete, dentro de él, los módulos
        • __init__.py
        • nave.py
        • destino.py
        • plataforma.py
        • lanzamiento.py
        • tests.py
        • validacion.py

      Esta regla no está tallada en piedra. Depende del proyecto y el Framework que uses.

      Jesús Velázquez Jiménez

      Jesús Velázquez Jiménez

      student•
      hace 4 años

      Package Set of modules that work together. Contain a file init.py **Module **Any code that we can reuse.

      Henry Mendiburu Díaz

      Henry Mendiburu Díaz

      student•
      hace 4 años

      La carpeta exploracion_espacil_proyecto tendría que guardarse en alguna ruta especial de la PC ? Cuando se quiera importar se tendría que llamar considerando la ruta completa donde está guardada?

        Carlos Castillo

        Carlos Castillo

        student•
        hace 4 años

        la ruta tu la puedes definir según como tu manejes tu sistema de carpetas personal. Para importar archivos y usarlos en código si tienes que escribir la dirección completa aunque es importante que los archivos que uses los tengas en la misma carpeta o en una carpeta hija donde tengas tu proyecto para poder ingresar la dirección como "./resources/archivo.csv"

      Sandra Milena Rojas Herrán

      Sandra Milena Rojas Herrán

      student•
      hace 4 años

      Mientras podemos tener tests para python y cuando terminen el curso, pueden ir a:

      TAU Pytest

      Es super explicativo y te ayuda a mejorar tus skills en inglés.

        Andrés Felipe Lopez gomez

        Andrés Felipe Lopez gomez

        student•
        hace 3 años

        Muchas gracias

      Max Castillo

      Max Castillo

      student•
      hace 4 años

      Módulos

      • Un módulo es un archivo de Python cuyos objetos (funciones, clases, excepciones, etc.) pueden ser accedidos desde otro archivo. Se trata simplemente de una forma de organizar grandes códigos.

      Paquetes

      • Un paquete es una carpeta que contiene varios módulos.
      Juan Pablo Cuenca Ludeña

      Juan Pablo Cuenca Ludeña

      student•
      hace 3 años

      Mi resumen #3

      image_517.png
        Alexander Orellana Manayalle

        Alexander Orellana Manayalle

        student•
        hace 3 años

        Excelente gracias.

        Juan Pablo Cuenca Ludeña

        Juan Pablo Cuenca Ludeña

        student•
        hace 3 años

        De nada compañero, espero pueda ser de utilidad para más personas.

      DAVID EDUARDO BAEZ SANCHEZ

      DAVID EDUARDO BAEZ SANCHEZ

      student•
      hace 4 años

      A seguir aprendiendo. Importante el orden

    Escuelas

    • Desarrollo Web
      • Fundamentos del Desarrollo Web Profesional
      • Diseño y Desarrollo Frontend
      • Desarrollo Frontend con JavaScript
      • Desarrollo Frontend con Vue.js
      • Desarrollo Frontend con Angular
      • Desarrollo Frontend con React.js
      • Desarrollo Backend con Node.js
      • Desarrollo Backend con Python
      • Desarrollo Backend con Java
      • Desarrollo Backend con PHP
      • Desarrollo Backend con Ruby
      • Bases de Datos para Web
      • Seguridad Web & API
      • Testing Automatizado y QA para Web
      • Arquitecturas Web Modernas y Escalabilidad
      • DevOps y Cloud para Desarrolladores Web
    • English Academy
      • Inglés Básico A1
      • Inglés Básico A2
      • Inglés Intermedio B1
      • Inglés Intermedio Alto B2
      • Inglés Avanzado C1
      • Inglés para Propósitos Específicos
      • Inglés de Negocios
    • Marketing Digital
      • Fundamentos de Marketing Digital
      • Marketing de Contenidos y Redacción Persuasiva
      • SEO y Posicionamiento Web
      • Social Media Marketing y Community Management
      • Publicidad Digital y Paid Media
      • Analítica Digital y Optimización (CRO)
      • Estrategia de Marketing y Growth
      • Marketing de Marca y Comunicación Estratégica
      • Marketing para E-commerce
      • Marketing B2B
      • Inteligencia Artificial Aplicada al Marketing
      • Automatización del Marketing
      • Marca Personal y Marketing Freelance
      • Ventas y Experiencia del Cliente
      • Creación de Contenido para Redes Sociales
    • Inteligencia Artificial y Data Science
      • Fundamentos de Data Science y AI
      • Análisis y Visualización de Datos
      • Machine Learning y Deep Learning
      • Data Engineer
      • Inteligencia Artificial para la Productividad
      • Desarrollo de Aplicaciones con IA
      • AI Software Engineer
    • Ciberseguridad
      • Fundamentos de Ciberseguridad
      • Hacking Ético y Pentesting (Red Team)
      • Análisis de Malware e Ingeniería Forense
      • Seguridad Defensiva y Cumplimiento (Blue Team)
      • Ciberseguridad Estratégica
    • Liderazgo y Habilidades Blandas
      • Fundamentos de Habilidades Profesionales
      • Liderazgo y Gestión de Equipos
      • Comunicación Avanzada y Oratoria
      • Negociación y Resolución de Conflictos
      • Inteligencia Emocional y Autogestión
      • Productividad y Herramientas Digitales
      • Gestión de Proyectos y Metodologías Ágiles
      • Desarrollo de Carrera y Marca Personal
      • Diversidad, Inclusión y Entorno Laboral Saludable
      • Filosofía y Estrategia para Líderes
    • Diseño de Producto y UX
      • Fundamentos de Diseño UX/UI
      • Investigación de Usuarios (UX Research)
      • Arquitectura de Información y Usabilidad
      • Diseño de Interfaces y Prototipado (UI Design)
      • Sistemas de Diseño y DesignOps
      • Redacción UX (UX Writing)
      • Creatividad e Innovación en Diseño
      • Diseño Accesible e Inclusivo
      • Diseño Asistido por Inteligencia Artificial
      • Gestión de Producto y Liderazgo en Diseño
      • Diseño de Interacciones Emergentes (VUI/VR)
      • Desarrollo Web para Diseñadores
      • Diseño y Prototipado No-Code
    • Contenido Audiovisual
      • Fundamentos de Producción Audiovisual
      • Producción de Video para Plataformas Digitales
      • Producción de Audio y Podcast
      • Fotografía y Diseño Gráfico para Contenido Digital
      • Motion Graphics y Animación
      • Contenido Interactivo y Realidad Aumentada
      • Estrategia, Marketing y Monetización de Contenidos
    • Desarrollo Móvil
      • Fundamentos de Desarrollo Móvil
      • Desarrollo Nativo Android con Kotlin
      • Desarrollo Nativo iOS con Swift
      • Desarrollo Multiplataforma con React Native
      • Desarrollo Multiplataforma con Flutter
      • Arquitectura y Patrones de Diseño Móvil
      • Integración de APIs y Persistencia Móvil
      • Testing y Despliegue en Móvil
      • Diseño UX/UI para Móviles
    • Diseño Gráfico y Arte Digital
      • Fundamentos del Diseño Gráfico y Digital
      • Diseño de Identidad Visual y Branding
      • Ilustración Digital y Arte Conceptual
      • Diseño Editorial y de Empaques
      • Motion Graphics y Animación 3D
      • Diseño Gráfico Asistido por Inteligencia Artificial
      • Creatividad e Innovación en Diseño
    • Programación
      • Fundamentos de Programación e Ingeniería de Software
      • Herramientas de IA para el trabajo
      • Matemáticas para Programación
      • Programación con Python
      • Programación con JavaScript
      • Programación con TypeScript
      • Programación Orientada a Objetos con Java
      • Desarrollo con C# y .NET
      • Programación con PHP
      • Programación con Go y Rust
      • Programación Móvil con Swift y Kotlin
      • Programación con C y C++
      • Administración Básica de Servidores Linux
    • Negocios
      • Fundamentos de Negocios y Emprendimiento
      • Estrategia y Crecimiento Empresarial
      • Finanzas Personales y Corporativas
      • Inversión en Mercados Financieros
      • Ventas, CRM y Experiencia del Cliente
      • Operaciones, Logística y E-commerce
      • Gestión de Proyectos y Metodologías Ágiles
      • Aspectos Legales y Cumplimiento
      • Habilidades Directivas y Crecimiento Profesional
      • Diversidad e Inclusión en el Entorno Laboral
      • Herramientas Digitales y Automatización para Negocios
    • Blockchain y Web3
      • Fundamentos de Blockchain y Web3
      • Desarrollo de Smart Contracts y dApps
      • Finanzas Descentralizadas (DeFi)
      • NFTs y Economía de Creadores
      • Seguridad Blockchain
      • Ecosistemas Blockchain Alternativos (No-EVM)
      • Producto, Marketing y Legal en Web3
    • Recursos Humanos
      • Fundamentos y Cultura Organizacional en RRHH
      • Atracción y Selección de Talento
      • Cultura y Employee Experience
      • Gestión y Desarrollo de Talento
      • Desarrollo y Evaluación de Liderazgo
      • Diversidad, Equidad e Inclusión
      • AI y Automatización en Recursos Humanos
      • Tecnología y Automatización en RRHH
    • Finanzas e Inversiones
      • Fundamentos de Finanzas Personales y Corporativas
      • Análisis y Valoración Financiera
      • Inversión y Mercados de Capitales
      • Finanzas Descentralizadas (DeFi) y Criptoactivos
      • Finanzas y Estrategia para Startups
      • Inteligencia Artificial Aplicada a Finanzas
      • Domina Excel
      • Financial Analyst
      • Conseguir trabajo en Finanzas e Inversiones
    • Startups
      • Fundamentos y Validación de Ideas
      • Estrategia de Negocio y Product-Market Fit
      • Desarrollo de Producto y Operaciones Lean
      • Finanzas, Legal y Fundraising
      • Marketing, Ventas y Growth para Startups
      • Cultura, Talento y Liderazgo
      • Finanzas y Operaciones en Ecommerce
      • Startups Web3 y Blockchain
      • Startups con Impacto Social
      • Expansión y Ecosistema Startup
    • Cloud Computing y DevOps
      • Fundamentos de Cloud y DevOps
      • Administración de Servidores Linux
      • Contenerización y Orquestación
      • Infraestructura como Código (IaC) y CI/CD
      • Amazon Web Services
      • Microsoft Azure
      • Serverless y Observabilidad
      • Certificaciones Cloud (Preparación)
      • Plataforma Cloud GCP

    Platzi y comunidad

    • Platzi Business
    • Live Classes
    • Lanzamientos
    • Executive Program
    • Trabaja con nosotros
    • Podcast

    Recursos

    • Manual de Marca

    Soporte

    • Preguntas Frecuentes
    • Contáctanos

    Legal

    • Términos y Condiciones
    • Privacidad
    • Tyc promociones
    Reconocimientos
    Reconocimientos
    Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
    Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
    Logo reconocimientoPrimera Startup EdTech · 2018
    Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
    Logo reconocimientoCEO Mejor Emprendedor del año · 2024
    De LATAM conpara el mundo
    YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads