-
Notifications
You must be signed in to change notification settings - Fork 0
/
xml2csv.py
32 lines (29 loc) · 1.43 KB
/
xml2csv.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# -*- coding=windows-1251
# noinspection PyCompatibility
import csv
import os
from xml.dom.minidom import parse
aFiles:list = [x for x in os.listdir() if x.endswith("z.xml")]
for xFile in aFiles:
with open(xFile[0:8] + '.csv', 'w', encoding='cp1251', errors='replace', newline='') as csvfile:
csv_file = csv.writer(csvfile, delimiter=';')
DOMTree = parse(xFile)
count:int = 0
for sotr in DOMTree.getElementsByTagName('Ñîòðóäíèê'):
count += 1
# print (sotr)
LC = FM = IM = OT = SS = ''
LC = sotr.getElementsByTagName('ËèöåâîéÑ÷åò').item(0).firstChild.nodeValue
FM = sotr.getElementsByTagName('Ôàìèëèÿ').item(0).firstChild.nodeValue
IM = sotr.getElementsByTagName('Èìÿ').item(0).firstChild.nodeValue
try:
OT = sotr.getElementsByTagName('Îò÷åñòâî').item(0).firstChild.nodeValue
except AttributeError:
pass # Èãíîðèðóåì ïóñòîå îò÷åòñòâî ó èíîñòðàíöåâ
# replace'àìè óäàëÿåì ïîñëåäñòâèÿ ïîâûøåíèÿ "÷åëîâåêî÷èòàåìîñòè"
SS = sotr.getElementsByTagName('Ñóììà').item(0).firstChild.nodeValue.replace('\t', '').replace('\n', '')
if len(SS) == 0:
SS = sotr.getElementsByTagName('Ñóììà').item(1).firstChild.nodeValue
print(LC, FM, IM, OT, SS)
csv_file.writerow([LC, FM, IM, OT, SS])
print(f'Çàïèñåé â ôàéëå {xFile}: {count}')