在Python中按某个关键字将文件拆分为列表

在Python中按某个关键字将文件拆分为列表,python,list,Python,List,我有几个文件,每个文件中都有许多由HTML标记标识的“文档”: <DOC myid="1"> ...some text here... </DOC> <DOC myid="2"> ...some text here... </DOC> //etc... …这里有一些文字。。。 …这里有一些文字。。。 //等等。。。 因此,每个“DOC”元素都被视为一个文档 在每个文件中都有数百个这样的文档“文档”,每

我有几个文件,每个文件中都有许多由HTML标记标识的“文档”:

<DOC myid="1">
...some text here...
</DOC>

<DOC myid="2">
...some text here...
</DOC>
//etc...

…这里有一些文字。。。
…这里有一些文字。。。
//等等。。。
因此,每个“DOC”元素都被视为一个文档

在每个文件中都有数百个这样的文档“文档”,每个文档都可以通过myid=“n”识别,其中n=1,2,3


我的问题只是如何通过这个标记分割这些文件,并将内容分配给Python列表?(我的列表中的每个元素都有一个DOC文档的id=myid

最好使用使用beautifulsoup的LXML解析器:

from bs4 import BeautifulSoup
import lxml

content = []
myResult = []

with open("file.xml","r") as f:
  content = f.readlines()
  content = "".join(content)
  soup = BeautifulSoup(content, "lxml")
  
myDocs = soup.find_all("DOC")
for x in myDocs:
  myResult.apend(x.text)
在此安装之前,请在命令提示符/终端中使用它来安装bs4和lxml:

pip install bs4 lxml

但是我必须使用lxml吗?如果我的文件不是xml类型怎么办?为什么不使用
content=f.read()
soup=BeautifulSoup(f.read(),“lxml”)
@Uriel它看起来像xml。而且永远不要使用正则表达式解析HTML/xml。而且扩展在这里似乎并不重要