如何通过具有通配符的特定字符串拆分文本文件?

时间:2013-11-06 19:25:42

标签: python string list

我有一个文本文件,其中包含教科书中的解决方案,我试图将每个解决方案拆分为自己的文本文件,在搜索完SO后,我似乎无法找到解决方案&# 39;优雅。

每个解决方案都以问题编号开头,例如*1-3;*4-2;

我可以在文件中读取并将每行存储在一个列表中,但是我实际上处理列表时遇到了麻烦,无法按标题进行拆分。

这是一个直接来自.txt的一些解决方案的pastebin:http://pastebin.com/ntSXLn72

谢谢!

2 个答案:

答案 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>;,并将全文分割为匹配的任何内容。您可能需要对空成员进行一些清理。

答案 1 :(得分: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