我正在使用 python 脚本和 cElementTree 包在 linux ubuntu 机器上解析 xml 文件。一段时间后(每次在同一点)它会导致错误
Segmentation fault (core dumped)
这似乎是一个 C 错误,因此我认为它连接到我正在使用的 C 库(cElementTree)。但是,我有点卡在如何调试这个问题上。如果我在本地 Macbook 上运行相同的程序,它可以正常工作,没有任何问题。只有在linux服务器上才会崩溃?我该如何调试呢?有人知道linux中cElementTree的问题吗?
这是我的代码
import xml.etree.cElementTree as ET
def fill_pubmed_papers_table(list_of_files):
for f in list_of_files:
print "read file %s" % f
inF = gzip.open(f, 'rb')
tree = ET.parse(inF)
inF.close()
root = tree.getroot()
papers = root.findall('PubmedArticle')
root.clear()
for i, citation in enumerate(papers):
write_to_db(citation)
return
解析脚本 write_to_db() 相当长,但如果有人感兴趣,我可以提供它。