Рубрики

Создание терминального онлайн-словаря с Python и bash

Вчера я смотрел фильм, и я не понял некоторые из используемых слов. Поэтому каждый раз, когда я не понимал ни одного слова, я запускал свой браузер и вводил слово «define [слово]», и Google выводил меня из значения слова. Но раздражает каждый раз открывать браузер (вините меня за это; P).

Что мы, пользователи, любимые, любим в наших системах linux? Да. Терминал!

Поскольку открыть терминал так же просто, как Ctrl + Alt + T, я подумал, что было бы полезно, если бы там было приложение для использования словаря. Отсюда и мотивация строить это!

Итак, что нам сейчас нужно, это база слов для словаря (да!). Существует бесплатный и легко используемый онлайн-словарь под названием Glosbe . Было предложено довольно аккуратно   API , правда, на стадии бета-тестирования. Это дает вывод в формате, называемом JSON, который является довольно стандартным для всех API.

Чтобы использовать этот API, необходимо передать запрос (запрос HTTP GET), содержащий слово, в Glosbe, и он будет возвращать значение (+ другие элементы, такие как фразы и т. Д.) Слова.

Например, чтобы найти слово «привет», нам нужно использовать:

http://glosbe.com/gapi/translate?from=eng&dest=eng&format=json&phrase=hello&pretty=true

Совершенно очевидно, что слово «привет» [фраза = привет]. Glosbe может предложить перевод с одного языка на другой. Но сейчас нам нужен только английский словарь. Так что установите from-dest как на английский. И, конечно же, формат вывода здесь — JSON (также можно изменить на XML). Перейдите по ссылке выше, чтобы увидеть выходной формат в формате JSON.

Теперь остальная часть задачи состоит в том, чтобы написать скрипт, который заменит слово «привет» (здесь) словом, которое пользователь захочет ввести, получить выходные данные, проанализировать его только для значения и отобразить.

Питон входит! Нам нужно написать скрипты Python для анализа возвращаемого объекта JSON.

import urllib    # библиотека для загрузки интернет-ресурсов

import json      # библиотека для операций json

#import os
# Название = os.environ [ "слово"]

title = raw_input("Enter word to search: ") # Введите слово в словарь поиска

print "Word: ",title

  
# сохраняет вывод в формате json в переменную

url = 'http://glosbe.com/gapi/translate?from=eng&dest=eng&\

format=json&phrase='+title+'&pretty=true'

  
#json представление url хранится в переменной result

result = json.load(urllib.urlopen(url)) 

  
# получить первый текст в «значении» в «tuc» из результата

print "Meaning: ", result["tuc"][0]["meanings"][0]["text"]

вход

Geek

Выход:

 Введите слово для поиска: Word: geek
Значение: эксперт в технической области, особенно в отношении компьютеров 

Удивлены? Всего 9 строк кода выполнят эту задачу! Запустите это и посмотрите, установлен ли у вас компилятор Python.

Как это устроено?

  • Здесь переменная 'url' хранит вывод в формате JSON от Glosbe.
  • load возьмет объект python и выгрузит его в строку [хранится в переменной 'result]', которая является JSON-представлением этого объекта.
  • Наконец, JSON анализируется только для значения, используя 'result [tuc] [0] [values] [0] [text] и печатается.

Так что теперь это работает, когда этот скрипт выполняется. Для этого мне нужно перейти в каталог, где он хранится, а затем запустить его. Опять же, мы можем упростить это, написав скрипт оболочки, который будет вызывать скрипт python. Дело в том, что он будет доступен из любого места, независимо от каталога, в котором находится терминал.

Таким образом, скрипт bash написан для вызова кода Python.

#!/bin/bash
word="$1"
export word
python /home/vishaag/hacks/bash_scripts/terminal_dictionary.py "word"

Чтобы сделать bash-файл глобально доступным, необходимо:

  • Добавьте каталог, который вы хотите найти для Linux, где также находится ваш скрипт.
  • Добавьте каталог в файл .bashrc (который находится в домашней папке и скрыт; нажмите Ctrl + H, чтобы увидеть скрытые файлы). Например, мне пришлось добавить каталог / home / vishaag / hacks / bash_scripts в верхней части файла .bashrc (с помощью текстового редактора, такого как gedit / kate и т. Д.).
  • После этого linux может получить доступ к вашему bash-скрипту из этой папки.

«Слово =» $ 1? и экспортировать слово 'в скрипте — это взять аргументы из bash в скрипт на python.

$ 1 обозначает первый аргумент ($ 2 — второй и т. Д. Запишите $ @ для n чисел аргументов). Например, когда вы пишете,

 $ dict привет 

(dict — это имя скрипта bash) привет хранится в $ 1 (и здесь копируется в « слово »)

Затем это экспортируется в скрипт Python.

Примечание. Удалите оба комментария в приведенном выше коде Python и удалите / comment 'title = raw_input («Введите слово для поиска:«) », чтобы использовать аргументы из bash.

import os
title=os.environ["word"]
#title = raw_input("Enter word to search: ")

И это сделано !!

Теперь все, что вам нужно сделать, это сохранить скрипт оболочки и запустить его так, как будто вы запускаете любое приложение на своем терминале.

Вот еще один пример вывода

Ура!

Ссылки:

Эта статья предоставлена Vishaag Suriya Narayanan . Если вам нравится GeeksforGeeks и вы хотите внести свой вклад, вы также можете написать статью и отправить ее по почте на contrib@geeksforgeeks.org. Смотрите свою статью, появляющуюся на главной странице GeeksforGeeks, и помогите другим вундеркиндам.

Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме

Рекомендуемые посты:

Создание терминального онлайн-словаря с Python и bash

0.00 (0%) 0 votes