Estaba viendo una película ayer y no entendí algunas de las palabras usadas. Entonces, lo que hice fue, cada vez que no entendía ninguna palabra, encendía mi navegador y escribía ‘definir [palabra]’ y Google me mostraba el significado de la palabra. Pero es molesto abrir el navegador cada vez (Cúlpame por eso; P).
¿Qué es lo que a los usuarios geeks nos encanta operar en nuestros sistemas Linux? Sí. ¡La terminal!
Dado que abrir una terminal es tan fácil como Ctrl+Alt+T, pensé que sería útil si hubiera una aplicación para usar un diccionario allí. Por lo tanto, la motivación para construir esto!
Entonces, lo que necesitamos ahora es la base de datos de palabras para el diccionario (¡duh!). Hay un diccionario en línea gratuito y fácil de usar llamado Glosbe . Ofrecía una API bastante ordenada , aunque en etapa beta. Da la salida en un formato llamado JSON, que es bastante estándar para todas las API.
Para usar esta API, se requiere realizar una consulta (solicitud HTTP GET) que contenga la palabra a Glosbe y devolverá el significado (+ otros elementos como frases, etc.) de la palabra.
Por ejemplo, para buscar la palabra ‘hola’, necesitaríamos usar:
http://glosbe.com/gapi/translate?from=eng&dest=eng&format=json&phrase=hello&pretty=true
Es bastante obvio ver que la palabra es ‘hola’ [frase=hola]. Glosbe también puede ofrecer traducir de un idioma a otro. Pero ahora mismo, solo necesitamos un diccionario de inglés. Así que configure el from-dest tanto en inglés. Y, por supuesto, el formato de salida aquí es JSON (también se puede cambiar a XML). Visite el enlace anterior para ver el formato de salida en JSON.
Ahora, el resto de la tarea es escribir un script que reemplace la palabra ‘hola’ (aquí) con la palabra que el usuario querrá ingresar, recibir el resultado, analizarlo solo por el significado y mostrarlo.
¡ Python entra! Necesitamos escribir secuencias de comandos de Python para analizar el objeto JSON devuelto.
import urllib #library for fetching internet resources import json #library for json operations #import os #title=os.environ["word"] title = input("Enter word to search: ") #Input word to search dictionary print ("Word: ",title ) #stores the json formatted output to a variable url = 'http://glosbe.com/gapi/translate?from=eng&dest=eng&\ format=json&phrase='+title+'&pretty=true' #json representation of url is stored in variable result result = json.load(urllib.urlopen(url)) #get the first text in "meaning" in "tuc" from result print ("Meaning: ", result["tuc"][0]["meanings"][0]["text"])
Aporte
Geek
Producción:
Enter word to search: Word: geek Meaning: expert in a technical field, particularly to do with computers
¿Sorprendido? ¡Solo 9 líneas de código lograrán esta tarea! Ejecute esto y vea si tiene instalado un compilador de Python.
¿Cómo funciona?
- Aquí, la variable ‘url’ almacena la salida con formato JSON de Glosbe.
- load tomará un objeto python y lo volcará en una string [almacenada en la variable ‘resultado]’ que es una representación JSON de ese objeto.
- Finalmente, el JSON se analiza solo para el significado usando ‘result[“tuc”][0][“significados”][0][“texto”]’ y se imprime.
Entonces ahora funciona cuando se ejecuta este script. Para hacer esto, tengo que navegar hasta el directorio donde está almacenado y luego ejecutarlo. Nuevamente, podemos simplificar esto escribiendo un script de shell que invocará el script de python. El punto es que será accesible desde cualquier lugar, independientemente del directorio en el que se encuentre la terminal.
Entonces, se escribe un script bash para llamar al código python.
#!/bin/bash word="$1" export word python /home/vishaag/hacks/bash_scripts/terminal_dictionary.py "word"
Para hacer que un archivo bash sea accesible globalmente, se requiere,
- Agregue el directorio que desea que busque Linux, que también es donde se encuentra su script.
- Agregue el directorio en el archivo .bashrc (que se encuentra en la carpeta de inicio y está oculto; presione Ctrl+H para ver los archivos ocultos). Por ejemplo, tuve que agregar el directorio /home/vishaag/hacks/bash_scripts en la parte superior del archivo .bashrc (usando un editor de texto como gedit/kate, etc.).
- Después de esto, Linux puede acceder a su script bash desde esta carpeta.
¿La ‘palabra=”$1? y export word’ en el script es tomar los argumentos de bash al script de python.
$1 denota el primer argumento ($2 el segundo y así sucesivamente. Escriba $@ para n número de argumentos). Por ejemplo, cuando escribes,
$dict hello
(dict es el nombre del script bash) hola se almacena en $1 (y se copia en ‘ palabra ‘ aquí)
Luego esto se exporta al script de python.
Nota: elimine los dos comentarios en el código python anterior y elimine / comente ‘title = raw_input («Ingrese la palabra para buscar: «)’ para usar los argumentos de bash.
import os title=os.environ["word"] #title = input("Enter word to search: ")
¡¡Y ya está!!
Ahora todo lo que tiene que hacer es guardar el script de shell y ejecutarlo como si ejecutara cualquier aplicación en su terminal.
Aquí hay otra salida de muestra
¡Salud!
Referencias:
- http://www.pythonforbeginners.com/code-snippets/parse-json-objects-in-python
- http://xmodulo.com/2013/05/how-to-parse-json-string-in-python.html
- http://linuxcommand.org/lc3_wss0010.php
Este artículo es una contribución de Vishaag Suriya Narayanan . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo y enviarlo por correo electrónico a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA