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 examen

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
        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