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

Python

Отправить сообщение

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

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

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

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

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

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

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

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

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

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

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

Время на прочтение3 мин
Количество просмотров15K
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
Комментарии91

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ситуация проста до не хочу. Скачанный с 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
Комментарии143

Информация

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