Как стать автором
Обновить
171
Карма
0
Рейтинг
Алексей Рембиш @Rembish

Python

Текст любой ценой: Miette

Python
Да, вы не ошиблись, и это не дежавю. Вы наверняка когда-то (если завсегдатай) видели этот топик. С тех пор прошло много времени, а мне продолжают ходить письма с вопросами и просьбами о совете на тему чтения текстовой информации из бинарных форматов данных. А это значит, что тема до сих пор актуальна, интересна для программирующей общественности.

За этот год (а ведь и вправду прошло больше года) я поменял место работы и занимаюсь совершенно другими вещами и давно уже не программирую (много не программирую, если быть точным) на PHP. Новый проект обязал меня совершенствоваться в python'е (и ощутить его силу), поэтому однажды воскресным вечером было решено переписать и, главное, улучшить некоторые из своих библиотек для чтения текста. Сегодня я представлю на суд публики молодой opensource-проект Miette («вкусняшка», если переводить с французского), который призван (в каком-никаком будущем) читать файлы пакета Microsoft Office.

Основной задачей Мьетт будет в первую очередь чтение чистого текста из офисных форматов, но в этот раз мне хотелось бы пойти дальше и сотворить невозможное: заставить парсер читать форматирование (хотя бы минимальное). Задача сложная, но вполне посильная, если будет время по вечерам и интерес (а возможно посильная помощь в виде тестирование и совместной разработки) со стороны страждущего народонаселения. Но это всего лишь планы и, так сказать, хобби.

Естественно python во многом отличается от PHP и, на мой взгляд, имеет несколько больший функционал, поэтому и принцип построения библиотек в проекте несколько другой, нежели старая «поделка» на PHP. В данном случае было решено запретить себе, как разработчику и заказчику в одном лице, загружать какие-либо большие блоки в память. Мьетт читает данные постепенно, по требованию, как это делает сам Word. Это делает его легковесным и нетребовательным к оперативной памяти. В будущем, я постараюсь пройти исходные profiler'ем и найти узкие горлышка, которые стоит оптимизировать дальше.

Идём дальше?
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Просмотры2.4K
Комментарии 17

Новости

Показать еще

Текст любой ценой: PPT. Дубль второй

PHP
Недавно я анонсировал свой вариант чтения презентаций PowerPoint с помощью чистого PHP. Тогда я с сожалением отметил, что класс сырой и нуждается в доработке. Долго ли, коротко ли, но ошибки были найдены — теперь файлы читаются заметно лучше, без всякой грязи. Надеюсь, вам пригодятся мои наработки.
Читать дальше →
Всего голосов 42: ↑39 и ↓3 +36
Просмотры1.2K
Комментарии 13

Текст любой ценой: PPT

PHP
Некоторое время назад мы с вами обсуждали получение чистого текста из различных форматов данных: будь то PDF или DOC. В одном из обсуждений был высказано предположение, что при парсинге презентаций PowerPoint я заработаю геморрой или другую страшную болезнь мягкой точки. Что ж, волей судеб мне пришлось доставать текст и из этого «сладенького» формата. Скажу честно, геморрой заработать не удалось, а вот класс для парсинга презентаций вышел.
Читать дальше →
Всего голосов 54: ↑46 и ↓8 +38
Просмотры4.3K
Комментарии 31

Windows Seven и много раскладок

Интерфейсы
Prince Lorien: I curious, you guys were typing in russian.
    How do you switch between english and russian letters like that?
Shoushpancheeck: We have two keyboards.
Prince Lorien: Oh cool, that simple. Eh!


Старая шутка с небезызвестного ресурса с постаревшими женщинами и кончившимися колодами сегодня послужит эпиграфом к старой, избитой проблеме Windows: «что делать, если на компьютере много раскладок?» Эта проблема наиболее актуальна у тех, кто живёт за рубежом или постоянно активно пользуется хотя бы тремя различными языками ввода. Под катом попробуем разобраться в чём суть проблемы и как жить дальше…
Читать дальше →
Всего голосов 53: ↑35 и ↓18 +17
Просмотры13.5K
Комментарии 91

Пользователи и сжатие данных

Сжатие данных
Я не хочу разжигать очередную священную войну, но комментарии на мой последний пост о «сжатии» в RAR навеяли на некоторое количество мыслей и рассуждений, которые я хочу донести до сообщества. Но перед этим хочу отметить, что я работаю под Windows'ем, поэтому всё ниже изложенное будет касаться именно его. Плюс к прочему попрошу отнестись к топику, как к информации к размышлению, а не как к красной тряпке для быка. Итак, давайте поговорим о форматах сжатия данных с пользовательской точки зрения.
Читать дальше →
Всего голосов 64: ↑39 и ↓25 +14
Просмотры13.2K
Комментарии 110

RAR: создание store-архива

PHP
На днях я рассказывал, как получить список файлов, что содержит rar-архив без использования сторонних расширений или библиотек. В одном из комментариев промелькнула мысль, что в принципе, не смотря на закрытость алгоритма RAR, можно вручную создать архив без сжатия. Посидев один вечер над кодом, я представляю вашему вниманию класс для создания stored-RAR архивов.
Читать дальше →
Всего голосов 46: ↑41 и ↓5 +36
Просмотры5.2K
Комментарии 44

RAR: получение списка файлов без PECL

PHP
Не так давно я писал о получении текста из всевозможных файловых форматов, будь то DOC или PDF. Сегодня мы рассмотрим не менее интересный формат — формат сжатия RAR. Не буду обнадёживать страждущих — сегодня мы только прочитаем список файлов без каких-либо дополнительных расширений PHP. Итак, кому интересно, прошу под кат…
Читать дальше →
Всего голосов 46: ↑37 и ↓9 +28
Просмотры6.5K
Комментарии 31

Текст любой ценой: WCBFF и DOC

PHP
Несколько позже, чем хотелось, но продолжаем наш разговор о получении текста из разных форматов данных. Мы с вами уже познакомились с тем, как работать с изначально XML-base файлами (docx и odt), прочитали текст из pdf, преобразовали содержимое rtf в plain-text. Теперь перейдём в вкусненькому да сладенькому — формату DOC.
Читать дальше →
Всего голосов 72: ↑67 и ↓5 +62
Просмотры25.4K
Комментарии 25

Текст любой ценой: RTF

PHP
Что ж продолжим наши изыскания на предмет получения текста из различных форматов данных. Не так давно мы с вами научились вытаскивать текст из zipped-xml-based файлов (odt и docx), а также, в начале этой недели, из pdf. Сегодня мы продолжим с обещанным rtf.

Rich Text Format (он же rtf), вы могли бы подумать, достаточно забытый, хотя и не очень сложный формат представления текстовых данных. Что ж, относительно несложный для получения текста, но за свою историю: от своей первой версии до текущей 1.9.1 — он приобрёл под 300 страниц официально документации и огромное количество надстроек, которые в большей степени нам будут мешать при получении plain text'а. Попробуем их обойти…
Читать дальше →
Всего голосов 67: ↑60 и ↓7 +53
Просмотры73.4K
Комментарии 49

Текст любой ценой: PDF

PHP
Продолжаем разбирать текстовые форматы на предмет получения текста. Итак, обещанный ранее PDF.

С portable document format'ом не всё так просто, как DOCX или ODT, что мы рассматривали в прошлый раз, но всё же это всё ещё изначально текстовый, а не бинарный формат. Вы удивлены? Тогда давайте посмотрим на то, что там внутри. Дальше действительно много текста.

Читать дальше →
Всего голосов 77: ↑75 и ↓2 +73
Просмотры73.7K
Комментарии 20

Текст любой ценой: DOCX и ODT

PHP
Недавно возникла задача получения чистого текста из различных форматов документооборота — будь-то документы Microsoft Word или PDF. Задача была выполнена даже с чуть более широким списком возможных входных данных. Итак, этой статьёй я открываю список публикаций о чтении текста из следующих типов файлов: DOC, DOCX, RTF, ODT и PDF — с помощью PHP без использования сторонних утилит.

Читать дальше →
Всего голосов 113: ↑98 и ↓15 +83
Просмотры58.1K
Комментарии 60

Не забывайте про ReadyBoost-флешки

Антивирусная защита
История произошла не со мной, но при мне — в буквальном смысле, в соседней комнате. Публикуется с позволения виновника/главного участника/а также главного пострадавшего.

Ситуация проста до не хочу. Скачанный с ThePirateBay'я plug-in для Photoshop'а. Далее по цепочке — инъекция даже не при запуске, а просто при отображении exe-файла установщика в Проводнике Windows Seven. AVG Internet Security смог только лишь промямлить: «Сударь, в системном процессе троян!» Точнее, два трояна: Win32/Virut и Win32/Heur. Сработали они оба на славу: инфицированы все exe-шники в Windows, Program Files. В том числе, taskmgr.exe и explorer.exe. При следующем запуске, система отказывается стартовать explorer, как результат — отсутствующий рабочий стол.

Читать дальше →
Всего голосов 89: ↑65 и ↓24 +41
Просмотры6.5K
Комментарии 143

Информация

В рейтинге
3,069-й
Откуда
Praha, Hlavni Mesto Praha, Чехия
Дата рождения
Зарегистрирован
Активность