Привет!
Есть такой код:
#!/usr/bin/env python36
import os
import xml.dom.minidom
import argparse
import re
import json
parser = argparse.ArgumentParser()
parser.add_argument('-i', '--host' , help='Input hostname')
parser.add_argument('-z', '--zone' , help='Input zone name')
args = parser.parse_args()
spisok =[]
for rootDir in os.listdir(r'/mnt/'+args.host+'/'+args.zone):
for root, dirs, files in os.walk(r'/mnt/'+args.host+'/'+args.zone+'/' + rootDir +'/defaultVars/Vars/Connections'):
for file in files:
if file.endswith(".substvar"):
path = os.path.join(root, file)
spisok.append(path)
for element in spisok:
doc = xml.dom.minidom.parse(element)
data ={}
for info in doc.getElementsByTagName("globalVariable"):
name_tag = info.getElementsByTagName("name")
if len(name_tag) and name_tag[0].firstChild is not None:
name = str(name_tag[0].firstChild.data)
value_tag = info.getElementsByTagName("value")
if len(value_tag) and value_tag[0].firstChild is not None:
data[name] = str(value_tag[0].firstChild.data)
print(element.split('/Connections/')[1], (json.dumps(data,indent = 4)))
Вот его результат выполнения:
Каким образом реализовать печать пути к файлу (каждой из директорий, выделенных красным) на новой строчке? И при этом исключить печать "defaultVars.substvar"?
Т.е. в формате (пример по первой строчке вывода):
{ EMS
{ DATA
{ Login }
{ Password }
{ URL }
}
}
При этом, не везде 2 директории. Где-то 3, где-то 1.