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

时间:2011-05-24 14:04:50

标签: php python django

我是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,只需将其放入多维数组中,如;

$results[]['HeadLine']

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

2 个答案:

答案 0 :(得分:5)

在Python中执行此操作的常用方法是附加到列表中。

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

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

答案 1 :(得分:1)

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

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