文本文件内容:
&CRB A='test1' B=123,345, 678 &END
Misc text potentially between entries ...
&CRB A='test2'
B=788, 345, 3424 &END
&CRB A='test3'
B=788, 345, 3424 &END
&CRB A='test4' B=788, 345, 3424 &END
遍历关键字之间条目的最有效方法是什么?笔记一些条目跨行。需要类似以下内容 -
f = open(filename)
for entry in f:
- do something with entry
当然没那么容易。但是,是否有关于以直接方式遍历由两个关键字分隔的条目的建议。
假设条目是 &CRB
和 &END
对之间的所有文本,您可以像这样提取它们之间的文本:
import re
# the regular expression treats newlines as a regular character, so the
# multiline entries are okay. It's non-greedy, so it gets individual entries.
pat = re.compile(r'&CRB(.+?)&END', re.DOTALL)
s = ''' &CRB A='test1' B=123,345, 678 &END
Misc text potentially between entries ...
&CRB A='test2'
B=788, 345, 3424 &END
&CRB A='test3'
B=788, 345, 3424 &END
&CRB A='test4' B=788, 345, 3424 &END'''
for entry in pat.findall(s):
# do something with each entry
print entry
打印这个:
A='test1' B=123,345, 678
A='test2'
B=788, 345, 3424
A='test3'
B=788, 345, 3424
A='test4' B=788, 345, 3424
...清理和解释每条记录的内容是您的问题...
我是一名优秀的程序员,十分优秀!