Я использую ElementTree для загрузки серии файлов XML и их анализа. Когда файл анализируется, я извлекаю из него несколько бит данных (заголовок и абзац текста). Затем мне нужно захватить некоторые имена файлов, которые хранятся в XML. Они содержатся в элементе под названием ContentItem
.Python development - elementtree XML и строковые операции
Мой код выглядит как это:
for item in dirlist:
newsML = ET.parse(item)
NewsLines = newsML.getroot()
HeadLine = NewsLines.getiterator("HeadLine")
result.append(HeadLine)
p = NewsLines.getiterator("p")
result.append(p)
ci = NewsLines.getiterator("ContentItem")
for i in ci:
result.append(i.attrib)
Теперь, если есть только один тип файла, это было бы хорошо, но она содержит 3 типа (JPG, FLV и MP4). Поэтому, когда я просматриваю их в представлении, он выплевывает их, но как я могу просто захватить flv, если я хочу только этого? или просто mp4? Они не всегда отображаются в том же порядке в списке.
Есть ли способ сказать, если он заканчивается на .mp4, то выполните это действие или есть способ сделать это в шаблоне?
Если я попытаюсь это сделать;
url = i.attrib
if url.get("Href",()).endswith('jpg'):
result.append(i.attrib)
Я получаю сообщение об ошибке: объект tuple не имеет атрибута endswith. Почему это кортеж? Я думал, что это диктофон?
насчет '.endswith()' (http://docs.python.org/library/stdtypes.html#str.endswith) или '.splitext()' (HTTP: // документы .python.org/библиотека/os.path.html # os.path.splitext)? – arie
Шаг 1: поиск всех остальных с одинаковой совпадением имени файла. http://stackoverflow.com/search?q=%5Bpython%5D+filename+match Шаг 2. Выберите аналогичный вопрос. http://stackoverflow.com/questions/296173/how-do-i-copy-files-with-specific-file-extension-to-a-folder-in-my-python-versio. Шаг 3: Прочтите, что сделали другие. –
Это не то же самое, что я пытаюсь сделать. Я просто хочу сопоставить некоторый текст в атрибуте elements. – Matthew