Необходимо разделить значения тегов xml на 10 элементов тега в одном файле и еще 10 элементов тега в другом файле с помощью python - PullRequest
0 голосов
/ 24 сентября 2019

У меня простой XML-файл, мне нужно разделить первые 10 значений тегов в одном файле и еще 10 значений тегов в другом тексте для всех значений, каждое из 10 значений в отдельном текстовом файле.

import xml.etree.ElementTree as ET

tree = ET.parse('Invoice.xml')
root = tree.getroot()

for e in root.iter('LineItem'):
    print (e.text)

Вот мой текущий вывод, первые 10 значений в одном файле и от 11 до 20 в другом файле. Как и 21 до 30 и т. Д.

1 2 3 4 5 6 7 8 9 10 11 12 13 1415 16 17 18 19 20 21

1 Ответ

0 голосов
/ 24 сентября 2019

Вы можете добавить все элементы в список и затем обработать их партиями по десять, или вы можете отслеживать номер элемента и изменять выходной файл для каждого десятого элемента.

Пакетирование

l = [e for e in root.iter('LineItem')]
num_batches = math.ceil(len(l)/10)
for batch in range(num_batches):
    # Setup output file
    for e in l[batch*10 : min((batch+1)*10, len(l) - 1)]:  # Iterate over each element in batch
        print(e.text)

Подсчет элементов

i = 0
for e in root.iter('LineItem'): 
    if i % 10 == 0:
        # Change output file
    i+=1
    print(e.text)
...