messages = open('messages').read()
blocks = [block.rpartition(r"PAGE\(enter\) 'Data1'")[0]
for block in messages.split(r"PAGE\(leave\) 'Data1'")
if block and not block.isspace()]
for count, block in enumerate(blocks, 1):
with open('home_to_home_%d' % count, 'a') as stream:
stream.write(block)
如果您担心的是单引号,可以用双引号开始正则表达式字符串。。。在
现在,这里还有更多的问题。。。即使声明为
r
,您仍然必须在.compile
(请参见What does the "r" in pythons re.compile(r' pattern flags') mean?)中转义正则表达式的反斜杠,因为没有r
,您可能需要更多的反斜杠。在我创建了一个包含两个“部分”的测试文件:
^{pr2}$下面的代码可以满足您的需要(我认为)
输出:
正如@JoanCharmant指出的,没有必要为此任务使用regex,因为记录是由固定字符串分隔的。在
这样的话就足够了:
相关问题 更多 >
编程相关推荐