I have a text file poem.txt contains several lines that I want to search starting with string #---START--- and #---END---. I would like to replace that section with new content. Here is a simple example:
我有一个文本文件poem.txt,其中包含我想要搜索的几行字符串#-Start-和#-End-。我想用新的内容替换那个部分。下面是一个简单的例子:
poem.txt
Poem.txt
Five Little Flowers
Five little flowers growing in a row.
The first one said, "I'm pupple, you know."
The second one said,
"I'm pink as pink can be."
The third one said, "I'm blue like the sea."
The fourth one said,
"I'm a very red fellow."
The fifth one said, "My color is yellow."
Then out came the sun, big and bright.
And five little flowers smiled in delight.
#---START---
It Must Be Spring
Hush, can you hear it?
The rustling in the grass,
Bringing you the welcome news that
Winter’s day is past.
Soft, can you feel it?
The warm caressing breeze,
Telling you the sticky buds
Are bursting on the trees.
Look, can you see them?
The primrose in the lane.
Now you must believe it —
Spring is here again.
#---END---
Spring Song
Frogs croak
Rains soak
Chicks peep
Crickets leap
Bees hum
Robins come
Birds sing
It’s spring!
new content is.
新的内容是。
Rain
The rain is raining all around,
It falls on field and tree,
It rains on the umbrellas here,
And on the ships at sea.
I am having some trouble with the right approach to this replace. find a way is to replace it
我在寻找正确的替代方法方面遇到了一些麻烦。想办法把它替换掉
更多回答
优秀答案推荐
Here is an example how you can use re.sub
to perform the substitution (regex101 demo):
以下是如何使用re.Sub执行替换的示例(regex101演示):
import re
poem_txt = """\
Five Little Flowers
Five little flowers growing in a row.
The first one said, "I'm pupple, you know."
The second one said,
"I'm pink as pink can be."
The third one said, "I'm blue like the sea."
The fourth one said,
"I'm a very red fellow."
The fifth one said, "My color is yellow."
Then out came the sun, big and bright.
And five little flowers smiled in delight.
#---START---
It Must Be Spring
Hush, can you hear it?
The rustling in the grass,
Bringing you the welcome news that
Winter’s day is past.
Soft, can you feel it?
The warm caressing breeze,
Telling you the sticky buds
Are bursting on the trees.
Look, can you see them?
The primrose in the lane.
Now you must believe it —
Spring is here again.
#---END---
Spring Song
Frogs croak
Rains soak
Chicks peep
Crickets leap
Bees hum
Robins come
Birds sing
It’s spring!"""
new_content = """\
Rain
The rain is raining all around,
It falls on field and tree,
It rains on the umbrellas here,
And on the ships at sea."""
new_text = re.sub(r"#---START---.*?#---END---", new_content, poem_txt, flags=re.S)
print(new_text)
Prints:
打印:
Five Little Flowers
Five little flowers growing in a row.
The first one said, "I'm pupple, you know."
The second one said,
"I'm pink as pink can be."
The third one said, "I'm blue like the sea."
The fourth one said,
"I'm a very red fellow."
The fifth one said, "My color is yellow."
Then out came the sun, big and bright.
And five little flowers smiled in delight.
Rain
The rain is raining all around,
It falls on field and tree,
It rains on the umbrellas here,
And on the ships at sea.
Spring Song
Frogs croak
Rains soak
Chicks peep
Crickets leap
Bees hum
Robins come
Birds sing
It’s spring!
更多回答
我是一名优秀的程序员,十分优秀!