Re[7]: [Python] Проблема с xml.etree.cElementTree
От: Senyai Россия http://www.arseniy.net
Дата: 28.09.17 14:06
Оценка:
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" для создания файла необходимого объема.

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

Note
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.
If you need a fully populated element, look for “end” events instead.


Я попробовал заменить на "end" и всё выглядит как надо. Главное elem.clear() не вызывать когда не надо, иначе attrib будет пустой.
Не бойтесь совершенства. Вам его не достичь. © Сальвадор Дали
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.