我有一个包含教科书解决方案的文本文件,我试图将每个解决方案拆分为自己的文本文件,在搜索 SO 之后,我似乎找不到一个优雅的解决方案。
每个解决方案都以问题编号开头,例如*1-3;
或*4-2;
。
我可以读入文件并将每一行存储在一个列表中,但是我在实际处理列表以按标题拆分时遇到了麻烦。
这是一个 pastebin,其中包含一些直接来自 .txt 的解决方案:http: //pastebin.com/ntSXLn72
谢谢!
我有一个包含教科书解决方案的文本文件,我试图将每个解决方案拆分为自己的文本文件,在搜索 SO 之后,我似乎找不到一个优雅的解决方案。
每个解决方案都以问题编号开头,例如*1-3;
或*4-2;
。
我可以读入文件并将每一行存储在一个列表中,但是我在实际处理列表以按标题拆分时遇到了麻烦。
这是一个 pastebin,其中包含一些直接来自 .txt 的解决方案:http: //pastebin.com/ntSXLn72
谢谢!
使用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>;
,并通过匹配的任何内容拆分全文。您可能需要对空成员进行一些清理。
#!/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