Форум сайта python.su
0
print ('Hello World!')
————————————————–
№ 1
Состояние: Действует без изменений
Постановление Администрации Тамбовской области от 31.01.2015 № 76
О комиссии по обеспечению устойчивого развития экономики и
социальной стабильности в Тамбовской области
Текст документа (актуальная редакция):
АДМИНИСТРАЦИЯ ТАМБОВСКОЙ ОБЛАСТИ
ПОСТАНОВЛЕНИЕ
31.01.2015 г. Тамбов № 76
+—————————————————————–+
| О комиссии по обеспечению устойчивого развития экономики и |
| социальной стабильности в Тамбовской области |
+—————————————————————–+
file.readlines()
file_in_string = ("""№ 1 Состояние: Действует без изменений Постановление Администрации Тамбовской области от 31.01.2015 № 76 О комиссии по обеспечению устойчивого развития экономики и социальной стабильности в Тамбовской области Текст документа (актуальная редакция):""") #и так далее весь файл
:with open('in.txt','r') as myfile: data=myfile.read()
Отредактировано sablast (Март 29, 2015 20:55:10)
Прикреплённый файлы:
in.txt (21,4 KБ)
Офлайн
253
2 мегабайта довольно скромный размер. Такие файлы я бы сам полностью в память грузил, как вы и сделали.
Регулярные выражения мощная штука, кроме нее можно использовать pyparsing. С его помощью проще написать более сложные шаблоны поиска для разделения документа на части. Если такие задачи часто встречаются то наверное надо будет проводить морфологический анализ. http://pymorphy2.readthedocs.org/en/latest/.
Я бы резал не по черточкам а по АДМИНИСТРАЦИИ ТАМБОВСКОЙ ОБЛАСТИ. т.е. по характерным формам заголовков (учитывая центрированность и характерные словосочетания).
При записи может потребоваться обратная операция -форматирование. Посмотрите jinja, mako.
Я не специалист по анализу текстов, знающие люди может еще чего подскажут.
sablastwith open('in.txt','r') as myfile:
data=myfile.read()
Отредактировано doza_and (Март 29, 2015 21:34:47)
Офлайн
0
doza_andспасибо за наводку, буду учить
можно использовать pyparsing
Отредактировано sablast (Март 29, 2015 21:38:16)
Офлайн
857
Там можно искать строки вида:
от 30 января 2015 г. г. Тамбов № 1374
sablastВообще, не принято всё в память загружать, мало ли какой-то там размер может появиться. Программу надо делать так, будто файл будет бесконечным. Но реализация для бесконечной последовательности может быть сложнее.
и уже с этой строкой работать с помощью регулярных выражений?
Или же я иду вообще по неверному пути?
sablastВообще, лучше тогда все такие штуки предварительно почистить, чтобы их нигде не было (оттранслировать это дело в какой-то канонический вид).
Проблема в том, что такая конструкция “+—————————————————————–+” встречается не везде.
Отредактировано py.user.next (Март 30, 2015 00:59:49)
Офлайн