Python开发 - 在for循环中存储结果
我刚开始学习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中,我可以直接把它放进一个多维数组里,比如这样:
$results[]['HeadLine']
在Python中处理这个问题的最好方法是什么?我还在使用Django框架,如果这有帮助的话。
2 个回答
1
因为在这个循环里没有其他操作,所以你可以这样写:
results = [ET.parse(item).getroot().getiterator("HeadLine") for item in dirlist]
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))
。