Aqui está um rápido programa em Python que deve mostrar o esquema desejado, usando recursão. Deve funcionar no Python 2 e 3 (embora eu tenha testado apenas em 2). O primeiro argumento é o diretório para o qual descender ou, por padrão, o script usará o diretório atual.
#!/usr/bin/env python
import os
import errno
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__':
import json
import sys
try:
directory = sys.argv[1]
except IndexError:
directory = "."
print(json.dumps(path_hierarchy(directory), indent=2, sort_keys=True))