Original article: Python Automation Scripts You Should Know

Todos hemos tenido las mismas tareas aburridas que tenemos que hacer una y otra vez, por suerte, podemos automatizar algunos de estos procesos, y así enfocarnos en cosas que realmente requieran nuestra energía y atención.

En este artículo hablaremos de algunos scripts de automatización en Python, que podrás usar fácilmente para automatizar tareas. Es importante entender que será código ya escrito que nos ayudará a realizar muchas de nuestras tareas repetitivas.

Recomiendo firmemente tener algo de experiencia en el lenguaje de programación Python antes que continuar con este artículo.

Empecemos.

gif, Bailando

Como automatizar la corrección de errores en un texto

Lo primero en la lista es la corrección de textos. Siempre que quieras eliminar errores ortográficos o de escritura en un escrito, puedes utilizar este proyecto que utiliza el módulo Lmproof.

# Python Proofreading
# pip install lmproof
import lmproof
def proofread(text):
    proofread = lmproof.load("en")
    correction = proofread.proofread(text)
    print("Original: {}".format(text))
    print("Correction: {}".format(correction))
    
proofread("Tu texto")

Primero necesitarás instalar la librería  lmproof. Después podrás utilizar la función proofread(), que toma un texto como parámetro. La función se ejecuta y muestra el texto original y el texto corregido. Puedes usarlo para corregir errores de forma rápida de un escrito o un artículo corto.

Como automatizar la reproducción de música de manera aleatoria

Mientras trabajan, muchos programadores aman escuchar música. Para estos amantes de la música (como yo), este script escoge aleatoriamente canciones desde una carpeta y las reproduce con la ayuda de los módulos de Python OS y random.

import random, os
music_dir = 'E:\\music diretory'
songs = os.listdir(music_dir)

song = random.randint(0,len(songs))

# Muestra el nombre de la cancion
print(songs[song])  

os.startfile(os.path.join(music_dir, songs[0])) 

El código va a la carpeta donde están las canciones que quieras reproducir y las pone en una lista. Entonces las reproduce de manera aleatoria una después de la otra. Con os.startfile reproducimos la canción.

Convertir automáticamente de PDF a CSV

Algunas veces necesitarás convertir datos de un pdf  a datos CSV (comma separated value, valores separados por coma), para utilizarlos para algún análisis de datos. En estos casos, este script será de mucha ayuda.

import tabula

filename = input("Enter File Path: ")
df = tabula.read_pdf(filename, encoding='utf-8', spreadsheet=True, pages='1')

df.to_csv('output.csv')

Tendrás que instalar la librería tabula  utilizando pip para poder ejecutar este código. Después de instalarla puedes pasarle tu archivo PDF para convertirlo a CSV.

La librería viene con la función read_pdf(), que toma un archivo y lo lee. Y para terminar la automatización se utiliza la función to_csv() para convertir el archivo a CSV.

Compresor automático de fotos

También puedes reducir el tamaño de una imagen comprimiéndola – Manteniendo la calidad original

import PIL
from PIL import Image
from tkinter.filedialog import *

fl=askopenfilenames()
img = Image.open(fl[0])
img.save("output.jpg", "JPEG", optimize = True, quality = 10)

Puedes usar PIL (Python Imaging Library - libreria de images de Python) para manipular imágenes, añadir filtros, desenfocar, cambiar nitidez, compresión de imágenes, cambiar bordes y mucho más.

Descargas automáticas de YouTube

El siguiente código automatiza la descarga de videos de YouTube. Simplemente, usa este programa para hacer tus descargas sin la necesidad de otras aplicaciones o páginas.

import pytube

link = input('Youtube Video URL')
video_download = pytube.Youtube(link)
video_download.streams.first().download()
print('Video Downloaded', link)

La librería pytube es muy fácil usar y con ella podrás descargar videos en tu computadora local. Todo lo que necesitas es ingresar el enlace del video y el método download() lo descargara en tu computadora

Texto a voz automáticamente

Haremos uso de la API "texto a voz" de Google para este código. La API está actualizada y funciona con diferentes idiomas y podrás seleccionar diferentes tonos y tipos de voz.

from pygame import mixer
from gtts import gTTS

def main():
   tts = gTTS('Like This Article')
   tts.save('output.mp3')
   mixer.init()
   mixer.music.load('output.mp3')
   mixer.music.play()
   
if __name__ == "__main__":
   main()

Como convertir automáticamente imágenes a PDF

Esta es una tarea muy común que probablemente harás varias veces. Talvez querrás convertir una sola o varias imágenes a PDF.

Como convertir una sola imagen a PDF:

import os
import img2pdf
with open("output.pdf", "wb") as file:
   file.write(img2pdf.convert([i for i in os.listdir('path to image') if i.endswith(".jpg")]))

Como convertir varias imágenes a PDF:

from fpdf import FPDF
Pdf = FPDF()

list_of_images = ["wall.jpg", "nature.jpg","cat.jpg"]
for i in list_of_images:
   Pdf.add_page()
   Pdf.image(i,x,y,w,h)
   Pdf.output("result.pdf", "F")

Aquí estamos usando la librería  image2pdf de Python para convertir nuestra imagen a PDF. También podemos convertir varias imágenes a PDF con solo unas cuantas líneas de código.

Verificador de plagio automático

El plagio es el acto de presentar ideas o palabras como tuyas, con o sin el permiso de la otra persona, integrándolas a un trabajo o escrito, sin dar crédito al autor original.

Este código puede ser muy útil cuando quieras buscar plagio entre 2 archivos.

from difflib import SequenceMatcher
def plagiarism_checker(f1,f2):
    with open(f1,errors="ignore") as file1,open(f2,errors="ignore") as file2:
        f1_data=file1.read()
        f2_data=file2.read()
        res=SequenceMatcher(None, f1_data, f2_data).ratio()
        
print(f"These files are {res*100} % similar")
f1=input("Enter file_1 path: ")
f2=input("Enter file_2 path: ")
plagiarism_checker(f1, f2)

Como hacer un acortador de URLs

Una URL muy larga puede ser molesta para leer o compartir, Para acortar una URL, en este código hacemos uso de una API.

from __future__ import with_statement
import contextlib
try:
	from urllib.parse import urlencode
except ImportError:
	from urllib import urlencode
try:
	from urllib.request import urlopen
except ImportError:
	from urllib2 import urlopen
import sys

def make_tiny(url):
	request_url = ('http://tinyurl.com/app-index.php?' + 
	urlencode({'url':url}))
	with contextlib.closing(urlopen(request_url)) as response:
		return response.read().decode('utf-8')

def main():
	for tinyurl in map(make_tiny, sys.argv[1:]):
		print(tinyurl)

if __name__ == '__main__':
	main()
    

'''

-----------------------------OUTPUT------------------------
python url_shortener.py https://www.wikipedia.org/
https://tinyurl.com/bif4t9

'''
    

Probador de velocidad de internet

La API para prueba de velocidad de OOKLA, permite comprobar el ping y la velocidad de internet, este pequeño código medirá la velocidad de subida y de bajada.

# Internet Speed tester
# pip install speedtest-cli
import speedtest as st

# Set Best Server
server = st.Speedtest()
server.get_best_server()

# Test Download Speed
down = server.download()
down = down / 1000000
print(f"Download Speed: {down} Mb/s")

# Test Upload Speed
up = server.upload()
up = up / 1000000
print(f"Upload Speed: {up} Mb/s")

# Test Ping
ping = server.results.ping
print(f"Ping Speed: {ping}")

Aunque haya otras alternativas como fast.com, con este código puedes hacerlo de manera rápida utilizando Python.

Conclusión

Hemos visto 10 ejemplos de automatización con Python en este artículo, espero que lo hayas encontrado útil. También puedes investigar un poco más sobre las librerías utilizadas y así expandir tu conocimiento.

Contáctame en Twitter o en LinkedIn.

! Y que tengas un gran día programando¡