Излагаю в расчёте на людей, не знакомых с Python’ом.
Требования: Windows
1. Установить Python 3.* (
http://www.python.org/getit/)ю
2. Установить SumatraPDF (
http://blog.kowalczyk.info/software/suma...iewer.html)
3. Распаковать прилагающийся архив туда где Python сможет его найти (например, в C:\Python 3.*\).
Python 3 — потому что мы нацелены в будущее.
SumatraPDF — симпатичный лёгкий просмотрщик, удобный для наших целей. Кроме прочего, удобно, что нн открывает и PDF, и DJVU (и ещё несколько форматов). Кстати, в SumatraPDF нажатие клавиш j и k эквивалентно стрелкам вниз и вверх — попробуйте, очень удобно.
И можно работать.
Предположим, у нас есть словарь и индекс к нему. Предположим, что индекс имеет простейшую мыслимую структуру: текстовый файл, строки которого являются списком последних слов (то есть статей) на каждой странице.
Нам нужно написать для этого словаря модуль на Python.
Модуль — это текстовый файл с расширением .py в кодировке utf-8.
В качестве примера рассмотрим модуль cceld.py, позволяющий работать с Copious and Critical English-Latin Dictionary.
Код:
from lookup import SDic, SimpleIndex
index = SimpleIndex('cceld.txt', firstpage=21);
dic = SDic(
filename ='C:/Users/Станислав/Documents/Языки/Латинский язык/Словари/copiouscriticale00smit(index).pdf',
index = index)
# simple console interface
if __name__ == "__main__":
print('This is the Copious and Critical English-Latin Dictionary')
print('Blank line exits')
while True:
entry = input('> ')
if entry == '':
break
dic.lookup(entry)
Пояснения.
Первой строчкой мы загружаем самодельные классы для работы со словарями (SDic) и индексами (SimpleIndex). Эту строчку трогать не надо.
Затем мы создаём индекс index на основе текстового файла ccld.txt, который лежит в той же папке, где и скрипт. Наверно, ваш файл будет называться по-другому.
Конечно, файл с индексом может лежать где угодно, и тогда нужно указывать полный путь. Аргумент firstpage важен: он указывает страницу PDF-файла, на которой располагается первое слово из индекса.
Затем мы создаём словарь dic, указывая полный путь к файлу словаря. Аргумент index = index означает, что в качестве индекса передаётся созданный выше index. (Если бы мы назвали его ind, было бы index = ind.)
Обратите внимание: в полном имени файла используются слэши, а не бэкслэши, и не нужны никакие дополнительные кавычки кроме ' в начале и конце.
Имеет смысл использовать стандартное имя переменной для словарей в подобных модулях (например, dic). Это делает более удобным использование модулей в других скриптах.
На этом модульная часть закончилась. Словарь готов для использования Python-ом.
Этот модуль можно использовать и как скрипт, то есть запускать двойным щелчком. За это отвечает написанное ниже строки # simple console interface. Параллельно отметим, что решётка служит в Python-е знаком комментария.
Интерфейс такой: появляется консоль и предлагает писать слова. Вы вводите слово, нажимаете Enter, и — о чудо! — открывается словарь на нужной странице. После этого можно вводить другое слово, и ad infinitum. Если просто нажать Enter (ввод пустой строки), консоль закрывается.
Реализацию этого «простого консольного интерфейса» мы разбирать не будем: её достаточно просто копипастить. Ну, конечно, изменяя строчку, которой словарь представляется.
Надо отметить, что
в Python-е очень важны отступы. Отступы всегда кратны четырём пробелам.