Re[8]: [Python] Проблема с xml.etree.cElementTree
От: SmaLL75 Россия http://smallweb.narod.ru
Дата: 03.10.17 06:45
Оценка:
Здравствуйте, Senyai, Вы писали:

S>>>На приведённом в первом посте xml, в f записывается:


S>>>
S>>>3632025024;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;1;0;0;0;177230;0;0;0;0;0;0;0;0;2014-10-17T00:00:00;1051;0;0\n'
S>>>3632369876;0;0;0;0;0;1;1;1;0;0;0;0;0;0;0;1;0;1;0;214239;0;1;0;1;1;0;0;0;2016-07-22T00:00:00;407;1;0\n'
S>>>


S>>>что выглядит правильно. Как повторить пропуск данных? (афк 1 час)


SLL>>iterparse читает файл блоками по 16кб. Если файл меньше одного блока, то парсер работает нормально, но у меня файл 100мб.

SLL>>Можно размножить блок с тегом "r" для создания файла необходимого объема.

S>Замечательно — смог повторить.

S>Документация говорит, что на событии "start" все элементы не будут доступны:
S>

S>Note
S>iterparse() only guarantees that it has seen the “>” character of a starting tag when it emits a “start” event, so the attributes are defined, but the contents of the text and tail attributes are undefined at that point. The same applies to the element children; they may or may not be present.
S>If you need a fully populated element, look for “end” events instead.


S>Я попробовал заменить на "end" и всё выглядит как надо. Главное elem.clear() не вызывать когда не надо, иначе attrib будет пустой.


Спасибо, добрый человек!
Все заработало.
Что ни делается, всЁ к лучшему
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.