我正在读取一个文件,其内容是这样的:
block1:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla consequat ante nisi, id
vestibulum felis tempor ac. Ut semper, ligula id sollicitudin efficitur, nisl diam elementum
lectus, nec iaculis turpis felis non mauris. Aenean elementum tortor a tristique iaculis. Morbi
a aliquam diam. Donec blandit orci sit amet ante hendrerit sodales.
block2:
<h1> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla consequat ante nisi, id
vestibulum felis tempor ac. Ut semper, ligula id sollicitudin efficitur, nisl diam elementum
lectus, nec iaculis turpis felis non mauris. Aenean elementum tortor a tristique iaculis. Morbi
a aliquam diam. Donec blandit orci sit amet ante hendrerit sodales. Morbi quis quam quis augue
fermentum tempus ac a ante. In vel dui interdum turpis sodales tincidunt. Praesent eget maximus
lorem. Phasellus mollis gravida nisi vitae pellentesque. Curabitur sed felis eget quam
tincidunt malesuada. </h1>
需要获取每个块的内容,我试过下面的代码:
f = open("filename.txt")
fcontent = f.read()
f.close()
contents = []
block_names = ("block1", "block2")
positions = len(block_names)
for pos in range(positions):
current_block = block_names[pos]
next_block = block_names[pos + 1]
contents.append(
fcontent[fcontent.find(current_block)] + len(current_block) + 1: next_block]
)
我对其进行了一些更改,因此它通常可以工作:
您一次遇到了几个错误:
我写了一个可以解决这个问题的代码:
但是现在每个块 (block1:, block2:) 必须按照您在 word_key 中指定的名称命名,并且不能在文本中使用。文件:
执行结果
print(_list[0]):