Я пытаюсь создать дерево каталогов json для каталога, который существует на моем компьютере. но я бы хотел указать только тип, имя и путь для файлов .exe, .bat, .cmd. Я нашел его в Интернете, и он работает для создания целого каталога, но я хотел бы очистить его только для типов файлов.
Я пытался использовать «добрые слова», но это разрушает мой синтаксис json и оставляет много свободного пространства
def path_hierarchy(path):
hierarchy = {
'type': 'folder',
'name': os.path.basename(path),
'path': path,
}
try:
hierarchy['children'] = [
path_hierarchy(os.path.join(path, contents))
for contents in os.listdir(path)
]
except OSError as e:
if e.errno != errno.ENOTDIR:
raise
hierarchy['type'] = 'file'
return hierarchy
if __name__ == '__main__':
try:
directory = sys.argv[1]
except IndexError:
directory = "."
hierarchy = path_hierarchy(r"\mypath\")
with open('myjson.json', 'w') as outfile:
json.dump(hierarchy, outfile, indent=2, sort_keys=True)
good_words = ['.exe', '.cmd', '.bat','},','{','[',']']
with open('myjson.json') as oldfile, open('myjsonfixed.json', 'w') as newfile:
for line in oldfile:
if any(good_word in line for good_word in good_words):
newfile.write(line.replace(dontwant,want))