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
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.