import xmltodict
import numpy as np
import pandas as pd
from collections import Counter
import os
import glob
import re
#from list of directories, iterate through each directory and apply my functions
def change_dir (directories):
for i in directories:
os.chdir(i)
return parse_xml (i)
#Read xml files from each subdir,parse and append to a list
def parse_xml (subdirectory):
doc = []
for i in glob.glob(os.path.join(subdirectory, '*.xml')):
with open(i, 'r') as fd:
doc.append(xmltodict.parse(fd.read()))
return make_pandas(doc)
#Take list of each subdir xml files, create required df and write csv to subdir
def make_pandas (list_parsedFiles):
logData_list = []
for xmlval in list_parsedFiles:
channel_list = xmlval['logs']['log']['logData']['mnemonicList'].split(",")
temp = [i.split(",") for i in xmlval ['logs']['log']['logData']['data']]
temp.insert(0, xmlval ['logs']['log']['logData']['unitList'].split(","))
logData_list.extend(temp)
df = pd.DataFrame(np.array(logData_list).reshape(len(logData_list),len(channel_list)), columns = channel_list).drop_duplicates()
df.to_csv('out.csv')
%%capture
tocsv = change_dir (list_smallLogs)