Python开发将结果存储在for循环中

2024-06-16 14:22:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,正在编写一个XML文件解析器应用程序。我有一个目录,里面装满了需要迭代的XML文件。每个文件都有属性集,例如“HeadLine”。我正在用下面的代码分析这些文件

def index(request):
    dirlist = glob.glob("/home/somebody/vids/*.xml")
    for item in dirlist:
        newsML = ET.parse(item)
        NewsLines = newsML.getroot()
        HeadLine = NewsLines.getiterator("HeadLine")

我不确定的是如何从循环的每次迭代中保存HeadLine元素。例如,在PHP中,id只是把它放入一个多维数组中,比如

^{pr2}$

在python中处理这个问题的最佳方法是什么?如果有帮助的话,我也在使用Django框架


Tags: 文件代码目录应用程序解析器属性defxml
2条回答

由于循环中没有执行其他操作,因此可以按如下方式编写:

results = [ET.parse(item).getroot().getiterator("HeadLine") for item in dirlist]

在Python中,通常的方法是将其附加到一个列表中。在

results = []
for item in dirlist:
  newsML = ET.parse(item)
  NewsLines = newsML.getroot()
  HeadLine = NewsLines.getiterator("HeadLine")
  results.append(HeadLine)

如果您还想将迭代器中的所有元素作为列表提取出来,那么最后一行应该是results.append(list(HeadLine))。在

相关问题 更多 >