Как вернуть все пути объекта древовидной структуры с помощью Python - PullRequest
0 голосов
/ 25 октября 2019

У меня есть файл hdf5 и что рекурсивно проверять все его group names, ожидаемый вывод - строка, содержащая все отношения пути, такие как root->node1->node2->leaf, и различные пути разделяются |, но что-то кажется неправильным в моем коде.

Я попробовал некоторый код на Python, но просто вывел первый путь последовательности.

def recurse_walk(hdf5_flie,chains=''):
  if not isinstance(hdf5_flie,File) or isinstance(hdf5_flie,Group):
  # object reaches its leaf node if not the instances
    chains += '|'
  else:
    keys = list(hdf5_flie.keys()) # list 'keys' contains the group names of the object
    for key in keys:
       chains += key
       return recurse_walk(hdf5_flie[key],chains=chains) # going to the next level
  return chains # output all chains

Ожидаемый результат - path1| path2 | path3 |......| pathN |, но, тем не менее, это только первый путь (root->node1->node2->leaf|) и никогда не будет.

...