Descargar libro de CONALITEG con Script de Python - Descargar imágenes y convertir a PDF

Descargar libros de CONALITEG

Ayer alguien me preguntó si se podía descargar un libro de texto gratuito de la página de CONALITEG (Comisión Nacional de Libros de Texto Gratuitos), así que le pedí que me enviara el enlace y al entrar vi que no es un PDF.

Al analizarlo vi que es una imagen que se muestra con magazine.js y que cada que pasas de página se carga una nueva imagen en el fondo (eso lo vi solo en un vistazo rápido, así que puede que esté equivocado en las librerías o esas cosas, aunque al final no importa):

Analizando libro de CONALITEG para descargar

Analizando libro de CONALITEG para descargar

Si te fijas, las páginas van en orden, es decir, va la 001, 002, etcétera hasta el final del libro.

Entonces pensé en una idea: hacer un script de Python que reciba el número de páginas del libro, la dirección del mismo y visite todas las páginas de las imágenes, las descargue una por una y después las convierta a PDF.

Para mi sorpresa el script funcionó como un encanto, y por eso te vengo a compartir cómo descargar esos libros y tal vez otros más que usen la misma tecnología.

(más…)

Ejercicio resuelto con Python - Facturación media con archivos CSV

Python: información fiscal de archivo CSV (ejercicio resuelto)

Hoy vamos a resolver un ejercicio con Python en donde vamos a trabajar con diccionarios, archivos CSV y métodos de ordenamiento.

El ejercicio en cuestión dice así:

Se dispone de un CSV con información fiscal de una empresa en diferentes años. Dicha información corresponde a la facturación de la empresa por cada uno de los trimestres.

Se pide escribir en Python que:

  1. Permita acceder a los datos de manera automatizada leyendo cada año y obtener la media de la facturación anual.
  2. Permita escribir en un documento txt cada una de la información obtenida del apartado anterior escribiéndolo cronológicamente de mas antiguo a mas moderno.

(más…)

Convertir CSV a lista de diccionarios con Python - Ejemplo de código

Convertir CSV a lista de diccionarios en Python

Hoy vamos a ver un ejemplo simple con Python y los archivos CSV. Veremos cómo convertir un CSV a un arreglo.

Primero vamos a convertir cada columna del archivo a un diccionario de Python, y después vamos a agregar ese diccionario a nuestra lista.

En el ejemplo te mostraré cómo leer datos enteros y flotantes, así como cadenas. De este modo tú podrás leer cualquier archivo separado por comas para tenerlo como array en Python.

Nota: yo decidí usar un diccionario, tú podrías usar una lista de listas o cualquier otra cosa.

(más…)

Programación de juego conecta 4 en Python

Conecta 4 en Python

En este post te mostraré el código fuente del juego conecta 4 (Connect 4) programado con Python, además de explicarte cómo es que ha sido programado y cómo funciona.

Te cuento que éste fue el programa que inspiró a programar el mismo juego en C, C sharp y JavaScript (mismos que encuentras en mi blog); ya que alguien me pidió programarlo en Python pero como no pude publicarlo antes mejor decidí hacerlo en C y luego en sus otras versiones.

El tiempo ha pasado y ahora ya puedo publicar este proyecto de Conecta 4 en Python con todo su código fuente.

(más…)

Jugando batalla naval - Juego programado con Python

Batalla naval en Python – Programación de juego

Hoy vamos a ver un juego programado en Python sin usar librerías para el funcionamiento del mismo.

Se trata del juego Battleship, juego de los barquitos, hundir la flota, hundiendo barquitos  o también llamado Batalla Naval programado totalmente en Python. Los requisitos del juego los veremos a continuación.

En este post te mostraré cómo programarlo, cómo jugarlo y dónde descargar el código fuente.

(más…)

Python - Ordenar arreglo con merge sort

Python: ordenar lista con merge sort

Hoy vamos a ver cómo implementar el ordenamiento por mezcla o merge sort en Python. Básicamente este algoritmo nos va a servir para ordenar un arreglo de cualquier tipo (suponiendo que los valores son comparables).

Hay varios enfoques para este algoritmo; algunos usan una función y otros usan 2. Yo usaré éste último enfoque pues todo queda más claro.

Por cierto, también usaremos la recursividad, ya que es un aspecto clave al momento de ordenar un array con merge sort en Python.

(más…)

Desenfoque de caja con Python - Difuminado de imagen

Aplicar filtros a imagen con Python

En este artículo te mostraré cómo manipular imágenes con Python, aplicarle algunos filtros y transformarlas. Lo que te enseñaré será:

  • Aplicar filtro de escala de grises y sepia
  • Voltear una imagen horizontalmente, como si fuera reflejada en un espejo
  • Desenfocar una imagen usando el desenfoque de caja

Todo esto con Python, escribiendo los algoritmos manualmente sin depender de una librería. Eso sí, para leer la imagen como matriz vamos a usar imageio.

Ya que andamos por aquí te recuerdo que también tengo un post en donde expliqué cómo ocultar texto en imágenes.

(más…)

Desenfoque de caja con Python - Difuminado de imagen

Desenfoque de caja (difuminado) con Python

En el artículo de hoy te voy a enseñar a difuminar una imagen aplicando el desenfoque de caja con Python. Vamos a leer la imagen como una matriz e ir modificando cada pixel.

El desenfoque de caja se logra tomando los pixeles vecinos del pixel en cuestión, tomando los RGB de cada uno y promediándolos.

Con “pixeles vecinos” me refiero al pixel que está arriba, abajo, a la derecha, a la izquierda, y en las 4 diagonales posibles.

Al final podremos implementar el desenfoque de caja o box blur en Python manualmente sin usar librerías.

(más…)

Filtro sepia con Python e imageio - Programación para modificar imágenes

Filtro de sepia a imagen con Python

Hoy te enseñaré a aplicar el filtro de sepia a una imagen utilizando programación y manipulación a nivel de pixeles en una imagen usando Python.

No vamos a usar librerías para la transformación, vamos a leer cada nivel de color de cada pixel y transformarlo para tener un filtro sepia.

Todo esto lo haremos recorriendo la matriz de pixeles; al final podremos convertir una imagen a modo sepia con Python.

(más…)

Reflejo horizontal (espejo) a imagen con Python e imageio - Trabajo con imágenes

Reflejo horizontal a imagen con Python

En este post de trabajo con imágenes en Python te mostraré cómo aplicar un reflejo horizontal a una imagen, de modo que podamos voltear la imagen de manera horizontal. Para ello vamos a trabajar con los pixeles de la imagen.

La asignación dice así:

Con este filtro queremos lograr el mismo resultado que un espejo, por lo que cualquier píxel ubicado al izquierdo ahora deberá estar en el derecho y viceversa. Se mantendrán todos los píxeles originales, solo que están organizados de manera diferente.

Entonces veamos cómo hacerlo usando Python, numpy e imageio.

(más…)

Python: ejercicio de artículos y ventas

En este post de programación en Python vamos a resolver un ejercicio que gestiona algo así como una tienda, en donde se registran artículos y se realizan ventas; todo esto usando listas o arreglos.

Esto que te muestro es un ejercicio básico de programación en Python, pero de igual modo es útil para los que están aprendiendo Python y quieren mejorar sus habilidades.

La propuesta dice:

Realizar un programa en Python para llevar la gestión de los precios de los artículos de una tienda, así como la cantidad vendida en total de cada artículo para lo cual, habrá que tener 3 vectores.

  1. Nombres: guardará los nombres de los artículos
  2. Precios: guardará los precios de los artículos
  3. Cantidades vendidas: guardará la cantidad vendida en total de cada artículo

Además, este programa debe implementar las siguientes opciones que van a mostrarse en un menú:

  1. Introducir un artículo nuevo – Registrar un nuevo artículo con nombre y precio
  2. Hacer una venta – Solicitar nombre de producto y cantidad a vender
  3. Mostrar información – Mostrar nombre, precio, cantidad vendida e importe de los artículos, además del total
  4. Borrar un artículo
  5. Borrar todos los artículos
  6. Salir

Obviamente cada para opción mencionada se debe programar el funcionamiento. Veamos entonces cómo se resuelve este ejercicio de programación.

(más…)