Skip to content

Home Администрирование Сбор информации вручную
Сбор информации вручную

Рассмотрим также более сложный способ - сбор информации вручную. Здесь подразумевается информация, которая собирается вами путем просмотра и ввода вручную. В качестве примеров можно привести список серверов с соответствующими им IP-адресами и описанием функций, список контактов с адресами электронной почты, номерами телефонов и псевдонимами IM или список с датами отпусков членов вашей команды. Есть, конечно, инструменты, способные управлять, если не всей, то большей частью такой информации. Список серверов можно хранить в файлах Excel или OpenOffice Spreadsheet. Контакты можно хранить в Outlook или AddressBook.app. А расписание отпусков можно хранить как в Excel/OpenOffice Spreadsheet, так и в Outlook. Применение таких инструментов может стать решением в ситуациях, когда технологии свободно доступны, исходные данные могут представлять собой простой текст, а инструменты обеспечивают легко настраиваемый вывод информации и поддерживают формат HTML (или, что еще лучше, XHTML).

Загрузите полные исходные тексты пакета ReSTless из репозитария с примерами программного кода по адресу: http:/ /www.oreilly.com/9780596515829. Ниже показано, как вызвать сценарий на языке Python из вымышленного Cocoa-приложения:

 

 

 

Несмотря на наличие различных альтернатив, мы собираемся предложить здесь текстовый формат, который называется reStructuredText (или reST). Вот как описывается формат reStructuredText на веб-сайте:

reStructuredText - это легкая для чтения, обеспечивающая отображение текста в режиме «что видишь, то и получаешь» простая текстовая разметка и одновременно система синтаксического анализа. Ее удобно использовать для встроенной документации к программам (например, в строках документирования языка Python), для быстрого создания веб-страниц, для создания самостоятельных документов. Разметка reStructuredText предусматривает возможность расширения под нужды различных прикладных областей. Синтаксический анализатор reStructuredText является составной частью пакета Docutils. Разметка reStructuredText представляет собой пересмотренную реализацию легковесных систем разметки StructuredText и Setext.

Формат ReST считается предпочтительным форматом для создания документации в языке Python. Если вы создали программный пакет на языке Python и решили выложить его в репозитарий PyPI, то от вас будут ожидать, что сопроводительная документация к пакету будет иметь формат ReST. Многие самостоятельные проекты, использую-

щие язык Python, применяют формат ReST в качестве основного для оформления своей документации.

Итак, какими же преимуществами обладает ReST как формат, используемый для создания документации? Во-первых, он достаточно прост. Во-вторых, знакомство с разметкой происходит практически сразу. Как только перед вами оказывается структура документа, вы быстро начинаете понимать, что имел в виду автор. Ниже приводится очень простой пример файла в формате ReST:

Этот пример позволяет без чтения документации представить, как выглядит правильно оформленный файл в формате reStructuredText. Возможно, при этом вы еще не в состоянии создать текстовый файл в формате ReST, но, по крайней мере, вы сможете читать его.

В-третьих, преобразование документов из формата ReST в формат HTML выполняется очень просто. И на этом третьем пункте мы сосредоточим свое внимание в этом разделе. Мы не будем пытаться представить здесь учебник по reStructuredText. Если вам захочется ознакомиться с синтаксисом разметки, посетите страницу http://docutils.so-urceforge.net/docs/user/rst/quickref.html.

Мы пройдем все этапы преобразования разметки ReST в HTML, используя документ, который мы только что показали в качестве примера:

Это оказалось совсем несложно. Мы импортировали модуль docutils.core. Затем определили строку, содержащую текст в формате reStruc-turedText, передали эту строку методу docutils.core.publish_string() и потребовали от него преобразовать строку в формат HTML. Затем с помощью операции извлечения среза мы извлекли текст, заключенный между тегами <body> и </body>. Мы извлекли срез потому, что библиотека docutils, использованная здесь для преобразования текста в формат HTML, вставляет в страницу HTML, созданную с ее помощью, каскадные таблицы стилей, чтобы она не выглядела слишком уныло.

Теперь, когда вы увидели, насколько все просто, рассмотрим другой пример, который находится ближе к системному администрированию. Любой хороший сисадмин должен помнить перечень своих серверов и задачи, которые они решают. Поэтому ниже приводится пример, показывающий, как можно составить список серверов сначала в простом текстовом виде, а затем преобразовать его в формат HTML:

Еще одна замечательная и простая текстовая разметка называется Textile. Согласно описанию на веб-сайте: «Textile получает текст с *про-стой* разметкой и воспроизводит корректный код разметки XHTML. Этот формат используется в веб-приложениях, в системах управления содержимым, программным обеспечением блогов и форумов». Если Textile является языком разметки, то почему он описывается в сдесь,

посвященной языку Python? Причина в том, что для языка Python существует библиотека, которая позволяет обрабатывать разметку Textile и преобразовывать ее в XHTML. Вы можете написать отдельную утилиту командной строки, которая с помощью библиотеки будет преобразовывать файлы из формата Textile в формат XHTML. Или можно вызывать модуль, выполняющий преобразование формата Textile, в некотором сценарии и программным способом обработать полученную разметку XHTML. В любом случае разметка Textile и модуль обработки Textile могут оказаться неплохим подспорьем в создании документации.

Установить модуль Textile можно с помощью команды easy_install textile или с помощью системы управления пакетами, имеющейся в вашем дистрибутиве. В Ubuntu, например, пакет называется python-textile и установить его можно командой apt-get install python-textile. Как только модуль Textile будет установлен, вы сможете приступить к его использованию, просто импортируя его, создавая объект Textiler и вызывая единственный метод этого объекта. Ниже приводится пример преобразования маркированного списка из формата Textile в формат XHTML:

Мы не будем пытаться дать здесь описание формата Textile. В Сети имеется множество ресурсов с этой информацией. Например, по адресу http://hobix.com/textile/ вы найдете отличное руководство по использованию Textile. Хотя мы и не собираемся слишком углубляться в описание формата Textile, тем не менее, мы посмотрим, как применить формат Textile для оформления информации, собранной вручную, - списка серверов с соответствующими им IP-адресами и функциями:

Как видите, оба формата, ReST и Textile, могут эффективно использоваться в сценариях на языке Python для преобразования текстовых данных. Если у вас действительно имеются такие данные, как списки серверов и контактов, которые требуется преобразовывать в формат HTML и затем предпринимать какие-либо дополнительные действия (например, отправлять HTML по электронной почте или передавать HTML-страницы куда-нибудь на веб-сервер по протоколу FTP), то библиотека docutils или Textile может оказаться для вас полезным инструментом.

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top