Всем привет.
Код:
#!/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(('\n'.join(element.split('/'))), (json.dumps(data,indent = 4)))
Его результат:
Хочу выводить на экран только кусок адреса, т.е. название адаптера начиная с ("rootDir") папки (т.е. название Adapters, в примере Adp_1C_root).
Как реализовать?
И можно ли выводить на экран только кусок:
Adapter_Name
EMS (для примера, т.к. папки разные могут быть)
Все вложенные в EMS?