Разработка Python - Сохранение результатов в цикле for - PullRequest
2 голосов
/ 24 мая 2011

Я новичок в 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 ]

5 голосов
/ 24 мая 2011

Обычный способ сделать это в 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 голос
/ 24 мая 2011

Поскольку в цикле не выполняется никаких других операций, вы можете записать его следующим образом:

results = [ET.parse(item).getroot().getiterator("HeadLine") for item in dirlist]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...