Есть такой код:
#!/usr/bin/env python36
import os
import xml.dom.minidom
import argparse
import re
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 root, dirs, files in os.walk(r'/mnt/'+args.host+'/'+args.zone+'/Adp_GO_MarketPlace_root/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 = str(info.getElementsByTagName("name")[0].firstChild.data)
value = str(info.getElementsByTagName("value")[0].firstChild.data)
data[name]=value
print(element,"\n",data,"\n")
В коде есть строчка:
for root, dirs, files in os.walk(r'/mnt/'+args.host+'/'+args.zone+'/Adp_GO_MarketPlace_root/defaultVars/Vars/Connections'):
Указан конкретный адаптер (Adp_GO_MarketPlace_root). В то же время в args.zone есть еще 50 таких папок, как Adp_GO_MarketPlace_root. Как мне заменить конкретное указание папки с Adp_GO_MarketPlace_root таким образом, что бы скрипт работал по всем вложенным директориям относительно args.zone, а не только Adp_GO_MarketPlace_root? Указывать аргументом не хочу, нужно именно перебирать все папки сразу.
В результате хочу выводить на экран не element + data, а название адаптера и data.