2013-11-06 4 views
0

У меня есть текстовый файл, в котором есть решения из учебника, и я пытаюсь разбить каждое решение на свой собственный текстовый файл, и после поиска через SO я не могу найти подходящее решение.Как разбить текстовый файл на определенную строку с wilcards?

Каждое решение имеет номер проблемы, такой как *1-3; или *4-2;.

Я могу прочитать в файле и сохранить каждую строку в списке, но у меня возникли проблемы с обработкой списка для разделения заголовком.

Вот Pastebin с некоторыми из решений прямо из .txt: http://pastebin.com/ntSXLn72

Спасибо!

+0

Вы пытались использовать регулярное выражение? – wwii

ответ

0
#!/usr/bin/python 

import re 

file_name = "" # put the txt file you're working on 

new_header = None 

for line in open(file_name,"r").readlines(): 
    if re.search("^[*][0-9]+[-][0-9]+[;]", line): 
     if new_header: 
      new_header.close() 
     new_header = open("%s_section:%s" % (file_name, line), "w") 
    if new_header: 
     new_header.write(line) 

if new_header: 
    new_header.close 
+0

Это сработало, спасибо! –

2

Использование re.split:

import re 

with open('text.txt') as f: 
    text = f.read() 

solutions = re.split('\*[0-9]\-[0-9];',text) 

Это регулярное выражение будет искать *<any number>-<any number>; и разделить полный текст на что-либо согласования. Возможно, вам придется немного очистить пустые элементы.

Смежные вопросы