Python 使用ElementTree时出现未定义的实体错误

Python 使用ElementTree时出现未定义的实体错误,python,xml-parsing,elementtree,Python,Xml Parsing,Elementtree,我有一组XML文件需要读取并格式化为单个CSV文件。为了读取XML文件,我使用了前面提到的解决方案 我的代码如下所示: from os import listdir import xml.etree.cElementTree as et files = listdir(".../blogs/") for i in range(len(files)): # fname = ".../blogs/" + files[i] f = open(".../blogs/" + files

我有一组XML文件需要读取并格式化为单个CSV文件。为了读取XML文件,我使用了前面提到的解决方案

我的代码如下所示:

from os import listdir
import xml.etree.cElementTree as et

files = listdir(".../blogs/")

for i in range(len(files)):
    # fname = ".../blogs/" + files[i]
    f = open(".../blogs/" + files[i], 'r')
    contents = f.read()
    tree=et.fromstring(contents)
    for el in tree.findall('post'):
        post = el.text

    f.close()
<Blog>
<date> some date </date>
<post> some blog post </post>
</Blog>
这会在
tree=et.fromstring(contents)
行中给出错误
celementree.ParseError:undefined entity:
。奇怪的是,当我在命令行Python上运行每个命令时(尽管没有for循环),它运行得非常好

如果您想知道XML结构,它是这样的:

from os import listdir
import xml.etree.cElementTree as et

files = listdir(".../blogs/")

for i in range(len(files)):
    # fname = ".../blogs/" + files[i]
    f = open(".../blogs/" + files[i], 'r')
    contents = f.read()
    tree=et.fromstring(contents)
    for el in tree.findall('post'):
        post = el.text

    f.close()
<Blog>
<date> some date </date>
<post> some blog post </post>
</Blog>

某个日期
一些博客文章
那么,是什么导致了这个错误,为什么它不是从Python文件运行的,而是从命令行运行的呢


更新:阅读后,我检查了
文件[0]
,发现“&”符号出现了几次。我认为这可能是造成问题的原因。当我在命令行上运行相同的命令时,我使用了一个随机文件进行读取。

正如我在更新中提到的,我怀疑有一些符号可能导致了问题。 当我在命令行上运行相同的行时,错误没有出现的原因是我会随机选择一个没有任何此类字符的文件

因为我主要需要
标记之间的内容,所以我创建了自己的解析器(如中所建议的)

从操作系统导入listdir
files=listdir(“…/blogs/”)
对于范围内的i(len(文件)):
f=打开(“…/blogs/”+文件[i],'r')
contents=f.read()
seek1=contents.find(“”)
seek2=contents.find(“”,seek1+1)
而(请参见k1!=-1):
post=内容[见K1+5:见K2+6]
seek1=contents.find(“”,seek1+1)
seek2=contents.find(“”,seek1+1)
f、 关闭()

首先,应该是
“../blogs/”
“../blogs”
还是
”。/../blogs/“
”?当然,它读取的文件是正确的。我不认为这是个问题。