如何使用python将小于和大于符号转换为父标记中的实体?

如何使用python将小于和大于符号转换为父标记中的实体?,python,regex,entity,Python,Regex,Entity,我很难在父标记中编写功能代码,以便将和\转换为\和\。原来的代码是这样的: <xml> <body> <month> <sep>Hello world!<p>This is september!</p> Hello world!<b>And today's Firday!</b></sep> </month> <month> <sep><i>

我很难在
父标记中编写功能代码,以便将
\
转换为
\
\
。原来的代码是这样的:

<xml>
<body>
<month>
<sep>Hello world!<p>This is 
september!</p> Hello world!<b>And today's Firday!</b></sep>
</month>
<month>
<sep><i>This is October!<i></sep>
</month>
</body>
</xml>
text1 = re.findall(r"<sep>((.|\n)*?)<\/sep>", f.read())
text2 = re.sub(r"<(.*?)>", r"\&lt;"+r"\1"+"\&gt;", text1)

你好,世界 这是
九月

你好,世界!今天是星期五! 现在是十月!
结果应该是:

<xml>
<body>
<month>
<sep>Hello world!\&lt;p\&gt;This is 
september!\&lt;/p\&gt; Hello world!\&lt;b\&gt;And today's Firday!\&lt;/b\&gt;</sep>
</month>
<month>
<sep>\&lt;i\&gt;This is October!\&lt;i\&gt;</sep>
</month>
</body>
</xml>

你好,世界\p\这是
九月\/世界你好\b\今天是星期五\/b\
\今天是十月\我\
到目前为止,我的代码如下:

<xml>
<body>
<month>
<sep>Hello world!<p>This is 
september!</p> Hello world!<b>And today's Firday!</b></sep>
</month>
<month>
<sep><i>This is October!<i></sep>
</month>
</body>
</xml>
text1 = re.findall(r"<sep>((.|\n)*?)<\/sep>", f.read())
text2 = re.sub(r"<(.*?)>", r"\&lt;"+r"\1"+"\&gt;", text1)
text1=re.findall(r“((.|\n)*?)”,f.read()
text2=re.sub(r“”,r“\”+r“\1”+“\”,text1)
但是如何将转换后的文本放回原始文件中呢? 谢谢

打印(结果解码)
打印:

<xml>
<body>
<month>
<sep>Hello world!\&lt;p\&gt;This is 
september!\&lt;/p\&gt; Hello world!\&lt;b\&gt;And today's Firday!\&lt;/b\&gt;</sep>
</month>
<month>
<sep>\&lt;i\&gt;This is October!\&lt;i\&gt;</sep>
</month>
</body>
</xml>
<xml>
<body>
<month>
<sep>Hello world!<p>This is 
september!</p> Hello world!<b>And today's Firday!</b></sep>
</month>
<month>
<sep><i>This is October!<i></sep>
</month>
</body>
</xml>

您应该提供您尝试过的代码。这是一个文件吗?你能分享到目前为止你写的代码吗?我已经更新了问题并添加了代码。请给我一些建议。谢谢非常感谢@GPhilo!它对样本有效!!但对我来说,问题是我正在运行一个相当大的文件,比如500MB,并且正则表达式将运行1个多小时来搜索
(.|\n))
。有没有其他方法来编写这个正则表达式,使它包含所有文本,包括换行符,python可以更好地消化它?顺便问一下,下划线在
(txt,)
中是什么意思,当我尝试使用正则表达式
(.*)
时,我收到一条错误消息说
太多值无法解包(预期为2个)
…?我想我找到了答案。我需要像
(.*?)
一样包装正则表达式。但我不介意听一些关于它的解释!:)非常感谢。在我旅行时,目前无法进行检查,但是您可以通过使用re.compile()预先定义模式,然后将该模式用于match、sub、findall等来获得一些加速。因为您不是每次都重建模式,所以这应该会大大加快速度。关于下划线,它只是一个变量的常规名称,它接受一个我们不关心的值。函数的结果是一个元组,其中只有第一个值是匹配的文本。检查更改代码中的结果,并相应地更新变量;)非常感谢。希望你的旅行顺利!我尝试了
copy
函数,但运行脚本似乎要花很长时间。但我认为这些代码非常适合于较小的文件!:)