5 snippets de Python

5 snippets de Python

Optimizar tiempos y recordar sintaxis

En este artículo nos acercamos a uno de los lenguaje de programación más populares, Python, y les compartiré algunos de los snippets que más utilizamos y cómo nos pueden sacar de un apurto. Vamos allá.

Sí, primero solo 5 snippets para ti programador

1.- Calcular el tamaño de una imagen mediante una URL

Este snippet es muy útil para saber cuánto pesa una imagen proporcionada mediante una URL.

import requests
from PIL import Image
from io import BytesIO


def get_image_size(url):
    data = requests.get(url).content
    im = Image.open(BytesIO(data))    
    return im.size


if __name__ == "__main__":
    url = "http://4.bp.blogspot.com/_A2NamGQmyCc/TO1nWedGQQI/AAAAAAAAAnA/WxBVyEGHxjc/s1600/sbn_pic_2.jpg"
    width, height = get_image_size(url)
    print width, height

2.- Eliminar espacios delante y atrás en una cadena

¿Python cuenta con una función como la función trim de PHP para eliminar los espacios delante de una cadena y detrás? La respuesta es sí, y se llama strip. Aquí tienes el código:

>>> str = ' aa b cde  '
>>> str
' aa b cde  '
>>> str.strip()
'aa b cde'
>>> str = str.strip()
>>> str
'aa b cde'
>>>

3.- Calcular la edad mediante la fecha de nacimiento

Esta función calcula la edad a partir de la fecha de nacimiento. Es una función muy simple, y que ha sido implementada basándose en respuestas en Stackoverflow.

def calculate_age(born):
    today = date.today()
    try:
        birthday = born.replace(year=today.year)
    except ValueError: # raised when birth date is February 29 and the current year is not a leap year
        birthday = born.replace(year=today.year, day=born.day-1)
    if birthday > today:
        return today.year - born.year - 1
    else:
        return today.year - born.year


if __name__ == "__main__":
    day, month, year = [int(x) for x in "7/11/1982".split("/")]
    born = date(year, month, day)
    print calculate_age(born)

4.- Buscar palabras clave/tweets en Twitter

import requests  
 import sys  
 import time  
 from datetime import datetime  
   
   
   
 def store_tweets(keyword, results, max_id):  
   tweet_list = []  
     
   for item in results:  
     tweet_id = item['id_str']  
     tweet_text = item['text'].encode('utf-8', 'ignore')  
     if len(tweet_text) > 255:  
       tweet_text = tweet_text[0:255]  
     from_user = item['from_user'].encode('utf-8', 'ignore')  
     from_user_id = item['from_user_id']  
     from_user_name = item['from_user_name'].encode('utf-8', 'ignore')  
     profile_image = item['profile_image_url'].encode('utf-8', 'ignore')  
     created_at = datetime.strptime(item['created_at'][:-6], "%a, %d %b %Y %H:%M:%S")  
       
     tweet_list.append((keyword, tweet_id, tweet_text, from_user, from_user_id, from_user_name, profile_image, created_at))  
       
   # Now store the tweet list in a database or file  
   return  
   
   
   
 def search_tweets(keyword, max_id = '', result_type = 'mixed'):  
   url = 'http://search.twitter.com/search.json'  
     
   params = {'q': keyword, 'rpp': '100'}  
     
   if len(max_id) > 0:  
     params['since_id'] = max_id  
       
   params['result_type'] = result_type  
   r = requests.get(url, params=params)  
   time.sleep(5)  
     
   if r.status_code != 200:  
     print r.status_code  
     print r.text  
     time.sleep(30)  
     return r.status_code  
   
   json_content = r.json  
     
   max_id = json_content['max_id_str']  
     
   while True:  
     results = json_content['results']  
     if len(results) == 0:  
       print "no result"  
       break  
         
     store_tweets(keyword, results, max_id)  
       
     if 'next_page' in json_content.keys():  
       next_page = json_content['next_page']  
     else:  
       break  
       
     r = requests.get(url + next_page)  
     time.sleep(5)  
     print r.status_code  
     if r.status_code != 200:  
       print r.status_code  
       print r.text  
       time.sleep(30)  
       return r.status_code  
   
     json_content = r.json  
       
     
     
 if __name__ == "__main__" :  
   keyword = 'python'  
   search_tweets(keyword)  

El último de este artículo…

5.- Concatenar dos diccionarios

Si quieres concatenar dos diccionarios en Python (añadir un diccionario a otro diccionario), hay una manera sencilla de hacerlo. Utiliza el método update() que es muy similar a la función extend(), la cual se suele utilizar para concatenar las listas.

>>> dict_1 = {1: 'a', 2: 'b', 3: 'c'}
>>> dict_2 = {4: 'd', 5: 'e', 6: 'f'}
>>> dict_1
{1: 'a', 2: 'b', 3: 'c'}
>>> dict_2
{4: 'd', 5: 'e', 6: 'f'}
>>> dict_1.update(dict_2)
>>> dict_2
{4: 'd', 5: 'e', 6: 'f'}
>>> dict_1
{1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f'}
>>>

*apoyo de redacción y fuente: love-python.blogspot.com.es

Conclusiones

Estos Snippets te serán muy útiles, y también para que comiences a hacer tu librería específica de lo que más necesitas y usas recurrentemente. Espera la segunda parte. Te invito a conocer a profundidad nuestro contenido y también la oportunidad de continuar desarrollándote con Metaphorce.mx

Nuestro equipo proveé de soluciones y conocimiento en tecnologías de la información, gobierno de TI y Desarrollo de soluciones a la medida para tu organización. De esta manera nuestros servicios de consultoría y transformación digital aceleran a tu organización a alcanzar sus metas. No dudes en contactarnos.

Te invitamos a continuar leyendo más de nuestros artículos. ¿Tienes alguna sugerencia o duda respecto a los servicios de consultoría y transformación digital para acelerar a tu organización y alcanzar tus metas? No dudes en contactarnos.

Autor: GHE

smart city
Sigamos en contacto

Comparte este artículo y síguenos en nuestras distintas Redes Sociales

¿Iniciamos?

Conoce todas las soluciones tecnológicas para acelerar

la transformación digital de tu organización.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *