Posibilidad de posicionamiento de marca de agua con WaterPy

Presentando a WaterPy: una aplicación de escritorio para poner marcas de agua

Hoy vengo a presentar una aplicación de escritorio muy simple pero funcional en lo que realiza. Se trata de un software que hace una cosa: poner marcas de agua.

Entre sus principales características encontramos:

  • Open source (aquí el repositorio)
  • Multiplataforma gracias a que lo que usa es igualmente multiplataforma
  • Permite modificar la transparencia de la marca de agua
  • La marca de agua puede ponerse en cualquier posición de la imagen, es decir, en la esquina inferior, superior, etcétera. En modo horizontal se puede colocar en: izquierda, derecha o centro. Y en modo vertical arriba, abajo o en el centro.
  • Permite procesar directorios completos de imágenes, o una imagen
  • Da la posibilidad de agregar una separación entre los límites de la imagen

Veamos cómo fue que la hice y por qué la hice, así como un ejemplo de uso.

Nota: puedes descargarlo aquí.

(más…)

Constantes en Python 3

Las constantes son valores que permanecen intactos a través de la ejecución de un programa y que nadie puede modificar después de la primera asignación.

En Python (y Python 3) las constantes no existen pero pueden ser simuladas. Hoy veremos por qué usar una constante, cómo declararla y algunos usos que le podemos dar en Python.

En resumen, veremos cómo usar constantes en Python.

(más…)

Usar find e index para buscar posición de carácter en cadena con Python 3

Posición o índice de un carácter o subcadena en cadena de Python

Vamos a ver cómo obtener el índice numérico de un carácter o letra en una cadena de Python 3. No importa si lo que buscamos es un simple carácter o una subcadena, ambas formas serán cubiertas.

Usar find e index para buscar posición de carácter en cadena con Python 3

Usar find e index para buscar posición de carácter en cadena con Python 3

Los métodos de las cadenas que tiene Python para resolver este problema son dos: find e index. Vamos a explicar cómo se usa cada uno de ellos con ejemplos.

(más…)

Recorrer cadena usando Python

Leer o iterar cadena carácter por carácter en Python 3

Hoy veremos cómo iterar o recorrer una cadena en Python 3 carácter por carácter, o letra por letra si queremos verlo así.

Recorrer cadena usando Python

Recorrer cadena usando Python

Expondré 2 formas de hacerlo, la primera es usando un ciclo for pero sin índice, únicamente obteniendo el carácter. La segunda es recorrer una cadena letra por letra pero también llevar un registro del índice.

(más…)

Agregar assets a PyInstaller, resolver rutas y empaquetar

Pyinstaller parte 2: agregar assets, imágenes y archivos a ejecutable de Python

Ya ha pasado algún tiempo desde que escribí cómo empaquetar un archivo de Python en un ejecutable. No pensé que tuviera el impacto que tuvo, pero me da gusto al final de todo.

Agregar assets a PyInstaller, resolver rutas y empaquetar

Agregar assets a PyInstaller, resolver rutas y empaquetar

En fin, ahora aquí está la parte 2 en donde muestro cómo agregar assets a nuestro paquete. Por ejemplo, a veces es necesario agregar imágenes, canciones o cualquier archivo extra al empaquetar con pyinstaller.

Cabe mencionar que no fue nada fácil, ya que casi no encontré documentación sobre eso excepto en el sitio oficial.

(más…)

Leer archivos de texto con Python

Leer todo el contenido de un archivo o línea por línea en Python

Siguiendo con los tutoriales que tienen que ver con la lectura de archivos hoy llega el turno de Python. Vamos a ver cómo podemos leer el contenido de un archivo de texto de dos maneras: leer todo el contenido, o leerlo línea a línea.

Leer archivos de texto con Python

Leer archivos de texto con Python

El segundo enfoque es mejor para archivos grandes, pues lo lee línea por línea y evita cargar todo el archivo en memoria.

Con Python, es muy fácil leer archivos, con pocas líneas hacemos mucho.

(más…)

Explicación de args y kwargs en Python. Función promedio

Entendiendo *args y **kwargs en Python

En este post explicaré para qué sirven y cómo se usan los *args y **kwargs en las llamadas a las funciones de Python 3.

Explicación de args y kwargs en Python. Función promedio

Explicación de args y kwargs en Python. Función promedio

Esto permite llamar a funciones que reciben un número indefinido de argumentos; y también cuando necesitamos múltiples argumentos opcionales. Vamos a ver algunos ejemplos.

(más…)

Formatear y obtener fecha y hora actual en Python 3

Obtener y formatear fecha y hora actual en Python

En este post veremos dos cosas para trabajar con la fecha y hora en Python:

  1. Cómo obtener la fecha y hora actual, separada por año, mes, día, hora, minuto, segundo y microsegundos
  2. Formatear la fecha y hora en Python para que sea legible y amigable.
Formatear y obtener fecha y hora actual en Python 3

Formatear y obtener fecha y hora actual en Python 3

Veremos algunos formatos útiles, como “Miércoles, 19 de diciembre del 2018” o “2018/12/19“, también con la hora, por ejemplo “Miércoles, 19 de diciembre del 2018. 7:30 AM” o incluso únicamente la hora, por ejemplo, “11:30 PM” o “23:10:15

(más…)

Invertir lista en Python

Invertir arreglo o lista en Python

Siguiendo los tutoriales de listas en Python veamos ahora cómo invertir o voltear un arreglo en este lenguaje.

Invertir lista en Python

Invertir lista en Python

Para invertir una lista o arreglo en Python se utiliza un método que modifica internamente a las mismas, aunque también se puede usar la notación de cortes en las listas.

(más…)

Cortar arreglos en Python, slice en listas

Operaciones para cortar listas en Python (slice notation)

Python es un lenguaje que tiene algunas propiedades un poco especiales a la hora de tratar con listas o arreglos. Se puede cortar un arreglo desde su inicio hasta determinado lugar, o desde determinado lugar hasta el final.

Cortar arreglos en Python, slice en listas

Cortar arreglos en Python, slice en listas

También se puede cortar desde el inicio hasta -2 elementos, y otras cosas que al principio son confusas pero después son útiles.

Nota: al menos para efectos de este post, lista y arreglo se refieren a lo mismo.

(más…)

Alternativas y equivalentes a switch en Python

Sentencia switch en Python

No existe la sentencia switch en Python, pero existen equivalentes dependiendo de lo que se desee alcanzar. El uso más conocido de switch es evaluar un valor y evitar anidar múltiples sentencias if.

Alternativas y equivalentes a switch en Python

Alternativas y equivalentes a switch en Python

Aquí se explica justamente eso: cómo hacer un equivalente a switch en Python.

(más…)

CRUD de MongoDB y Python con PyMongo

CRUD (create, read, update, delete) en Python y MongoDB

Siguiendo con la serie de tutoriales para consumir distintas bases de datos hoy veremos cómo conectarnos a una base de datos de MongoDB y hacer todas las operaciones para crear, leer, actualizar y eliminar desde Python.

CRUD de MongoDB y Python con PyMongo

CRUD de MongoDB y Python con PyMongo

El módulo que usaremos será PyMongo; el cual está disponible para instalarse por medio de Python y que nos permite conectarnos a MongoDB, obtener bases de datos, colecciones y todo lo relacionado a ello.

Al finalizar podremos gestionar una colección de productos de una tienda.

(más…)

Chr y ord en Python

Funciones ord y chr en Python

En Python existen las funciones ord y chr que sirven para trabajar con caracteres y su representación en Unicode. La primera, ord, recibe un carácter y regresa un entero que representa el número unicode que representa a ese carácter. La segunda, chr, sirve para lo inverso; recibe un entero y devuelve un carácter.

Chr y ord en Python

Chr y ord en Python

Veremos también cómo podemos rotar una cadena según el alfabeto (algo así como el ROT13 o cifrado César) y también cómo hacer un traductor de letras a ASCII.

Vamos a ver los usos y formas de trabajar con las funciones ord y chr en Python.

(más…)

Usos y ejemplos de split en Python para separar cadenas

En la mayoría (si no es que en todos) los lenguajes de programación existe la función split, cuya forma de trabajar es tomar una cadena y regresar un arreglo de esa cadena separada por tokens.

Si tenemos una cadena como "Hola mundo" y usamos el espacio " " como delimitador, al usar split nos devuelve un arreglo o lista que tiene ["Hola", "Mundo"]. Como delimitador se puede usar cualquier cadena o carácter.

Ahora veamos más ejemplos de split, así como su uso en Python.

(más…)