#!/usr/bin/env python2.7 # -*- coding: utf-8 -*- import sys import re import base64 import types # from EMT import EMTypograph import EMT import json def main(): emt = EMT.EMTypograph() txt = '"Эдиториум.ру" - сайт, созданный по материалам сборника "О редактировании и редакторах" Аркадия Эммануиловича Мильчина, который с 1944 года коллекционировал выдержки из статей, рассказов, фельетонов, пародий, писем и книг, где так или иначе затрагивается тема редакторской работы. Эта коллекция легла в основу обширной антологии, представляющей историю и природу редактирования в первоисточниках. \n\n'\ 'Кажется, вам просто нужно добавить отступ к байтам перед декодированием. На этот вопрос есть много других ответов, но я хочу указать, что (по крайней мере, в Python 3.x) base64.b64decodeлюбые дополнительные отступы будут обрезаны, если их достаточно.\n\n\n\n\n' \ 'Итак, что-то вроде: b\'abc=\' работает так же хорошо, как b\'abc==\'(как b\'abc=====\').\n\n' \ 'Это означает 100000 руб., что вы можете просто добавить максимальное количество символов заполнения, ' \ 'которое вам когда-либо понадобится, а это три ( b\'===\'), и base64 обрежет все ненужные.\n\n' \ 'Это позволяет вам писать:\n' \ 'base64.b64decode(s + b\'===\')\n' \ 'base64.b64decode(s + b\'=\' * (-len(s) % 4))\'\n\n' emt.set_text(txt) # emt.set_tag_layout(layout=EMT.LAYOUT_CLASS) # rules = {'Text.paragraphs': 'on'} result = emt.apply() print(result) print(emt.get_all_safe_blocks()) if __name__ == "__main__": main()