Los módulos permiten separar código en varios archivos para evitar la acumulación excesiva de este dentro de un solo archivo.

Es importante comenzar a generar correctamente la estructura del proyecto y procurar gestionar las carpetas y ficheros donde se almacenarán los paquetes (carpetas) y módulos (ficheros).

Importar un módulo

Para llamar un archivo dentro de otro se utiliza la palabra reservada import, el nombre del archivo (sin la extensión py)

import modulo
print(modulo) #Muestra el contenido del módulo

Llamar funciones de un módulo

Se debe importar el módulo de la misma manera que en el ejemplo anterior y para acceder a la función, se agrega un punto y el nombre de la función después de ingresar el nombre del módulo.

import modulo
print(modulo.funcion())

Llamar funciones predefinidas

Puedes acceder a distintas funciones dentro de una misma línea utilizando comas.

#import os, sys, time

#Acceder a funciones de un módulo
import time
print(time.asctime())

Otra manera de llamar a las funciones es
from time import asctime
print(asctime()) #De este modo se omite especificar el módulo time

Llamar funciones desde paquetes

Los paquetes permiten organizar distintos módulos

import paquete.modulo
print(paquete.modulo.funcion()) #Se llama al paquete, después al módulo (archivo) y la función a llamar

Otra manera de importar
from paquete.modulo import funcion
print(mensaje())

Llamar múltiples funciones

from paquete.modulo import funcion1, funcion2, funcion3

Para llamar todo el contenido de un módulo se utiliza el *

from paquete.modulo import * #Esto indica que se va a importar todo el contenido /funciones de un módulo

print(funcion1())
print(funcion2())
print(funcion3())