gpt4 book ai didi

python - 重复提取文本文件中两个分隔符之间的一行,Python

转载 作者:太空狗 更新时间:2023-10-29 17:55:36 24 4
gpt4 key购买 nike

我有一个以下格式的文本文件:

DELIMITER1
extract me
extract me
extract me
DELIMITER2

我想提取 .txt 文件中 DELIMITER1 和 DELIMITER2 之间 extract me 的每个 block

这是我当前的非执行代码:

import re
def GetTheSentences(file):
fileContents = open(file)
start_rx = re.compile('DELIMITER')
end_rx = re.compile('DELIMITER2')

line_iterator = iter(fileContents)
start = False
for line in line_iterator:
if re.findall(start_rx, line):

start = True
break
while start:
next_line = next(line_iterator)
if re.findall(end_rx, next_line):
break

print next_line

continue
line_iterator.next()

有什么想法吗?

最佳答案

您可以使用 re.S 将其简化为一个正则表达式,DOTALL flag .

import re
def GetTheSentences(infile):
with open(infile) as fp:
for result in re.findall('DELIMITER1(.*?)DELIMITER2', fp.read(), re.S):
print result
# extract me
# extract me
# extract me

这也利用了非贪婪运算符 .*?,因此将找到多个不重叠的 DELIMITER1-DELIMITER2 对 block 。

关于python - 重复提取文本文件中两个分隔符之间的一行,Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7098530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com