# Importamos la libreria
import os21 Librerías útiles de sistema
21.1 os
Interactuar con el sistema operativo desde Python es una tarea que se hace mucho más sencilla gracias a la librería OS. Sin necesidad de instalaciones adicionales, esta herramienta permite automatizar y manejar archivos y directorios, lo que simplifica enormemente el flujo de trabajo. Veamos algunos ejemplos prácticos de su uso.
Directorio actual
os.getcwd()'/Users/jona/Github/book-cursos/qmd/python'
Listar los archivos del directorio
# Listamos los archivos que comienzan con "poo" usando
# list comprehension
poo = [files for files in os.listdir(".") if files.startswith("poo")]
print(f"Los archivos de POO son: {poo}")Los archivos de POO son: ['poo1_clases.qmd', 'poo1_clases.quarto_ipynb', 'poo1_clases.html', 'poo3_resumen.html', 'poo2_herencias.html', 'poo2_herencias.quarto_ipynb', 'poo3_resumen.qmd', 'poo2_herencias.qmd', 'poo3_resumen.quarto_ipynb']
¿Cómo funciona esta list comprehension?
os.listdir("."):
- Devuelve una lista con todos los archivos y carpetas del directorio actual (el punto “.” representa el directorio actual).
for files in ...:
- Itera sobre cada elemento (archivo/carpeta) de la lista que devuelve os.listdir(“.”)
- La variable files toma el valor de cada nombre de archivo en cada iteración.
if files.startswith("poo"):
- Condición que filtra solo los archivos cuyo nombre comience con “poo”
startswith()devuelve True si el string comienza con el prefijo especificado.
files (al inicio):
- Es lo que se incluye en la lista final para cada elemento que cumple la condición.
21.2 math
Cuando trabajamos con cálculos matemáticos en Python, la librería Math es una aliada invaluable. Ofrece una serie de funciones y constantes matemáticas, ideal para conseguir resultados precisos.
import mathEjemplos de uso de la librería math:
# 1. Calcular el area y perimetro de una circunferencia
radio = 5
area = round((math.pi * radio ** 2), 1)
perimetro = round((2 * math.pi * radio), 1)
print(f"El área de un círculo con radio 5 es de: {area}")
print(f"El perímetro de un círculo con radio 5 es de: {perimetro}")El área de un círculo con radio 5 es de: 78.5
El perímetro de un círculo con radio 5 es de: 31.4
21.3 random
La generación de números y elecciones aleatorias es una tarea comúnmente requerida, y la librería Random en Python nos ofrece varias herramientas útiles para este propósito.
import randomEjemplos de uso de la librería random:
# 1. Generar un numero entero aleatorio entre 1 y 10
print(f"Número entero aleatorio: {random.randint(1, 10)}")
# 2. Elegir aleatoriamente
## Con lista
lista = ['manzana', 'banana', 'cereza']
print("Elegir un elemento de una lista: ", random.choice(lista))
## Con tupla
tupla = (10, 20, 30, 40)
print("Elegir un elemento de una tupla: ",random.choice(tupla)) # ej: 30
## Con string
cadena = "ABCDEFG"
print("Elegir un elemento de una string: ",random.choice(cadena)) # ej: 'D'
## Con range
rango = range(1, 11) # números del 1 al 10
print("Elegir un elemento de un rango: ",random.choice(rango))Número entero aleatorio: 1
Elegir un elemento de una lista: manzana
Elegir un elemento de una tupla: 20
Elegir un elemento de una string: E
Elegir un elemento de un rango: 6
Ejemplo de shuffle
# Lista original
cartas = ['As', 'Rey', 'Reina', 'Jota', '10', '9']
print("Original:", cartas)
# Mezclar la lista
random.shuffle(cartas)
print("Mezclada:", cartas)Original: ['As', 'Rey', 'Reina', 'Jota', '10', '9']
Mezclada: ['Reina', 'As', '9', 'Jota', 'Rey', '10']
21.4 statistics
En el análisis de datos, es fundamental comprender y utilizar diversas medidas estadísticas para interpretar correctamente la información. Estas medidas nos permiten resumir y describir las características principales de un conjunto de datos, facilitando la toma de decisiones informadas.
import statisticsAlgunas de las medidas estadísticas más comunes y sus fórmulas asociadas son las siguientes:
# Datos para ejemplo:
datos = [1, 2, 3, 4, 4, 5, 6, 7, 8, 9, 10]
# Media aritmetica: `.mean()`
print("La media es: ", statistics.mean(datos))
# Mediana (valor central): `.median()`
print("La mediana es: ", statistics.median(datos))
# Moda (valor mas frecuente): `.mode()`
print("La moda es: ", statistics.mode(datos))
# Desviacion estandar: `.stdev()`
print("La desviación estándar es: ", round((statistics.stdev(datos)), 2))
# Varianza de la muestra: `.variance()`
print("La varianza es: ", round((statistics.variance(datos)), 2))
# Valor minimo: `.min()`
print("El valor mínimo es: ", min(datos))
# Valor maximo: `.max()`
print("El valor máximo es: ", max(datos))
# Cuartiles general: `.quantiles()`
print("Los cuartiles son: ", statistics.quantiles(datos, n = 4))
# Primer cuartil: [N] segun index
print("El primer cuartil es: ", statistics.quantiles(datos, n = 4)[0])La media es: 5.363636363636363
La mediana es: 5
La moda es: 4
La desviación estándar es: 2.91
La varianza es: 8.45
El valor mínimo es: 1
El valor máximo es: 10
Los cuartiles son: [3.0, 5.0, 8.0]
El primer cuartil es: 3.0