在地图中搜索子地图

时间:2015-10-05 09:17:35

标签: python

我想在地图中搜索地图名称。为了使我想要的更清楚,这就是地图结构:

\All data
   \Submap1
      \SubSubmap1
         \some files
      \Subsubmap2

   \Submap2
   \Submap3

我想要做的是搜索SubSubmap&#39。我想在子图的名称上搜索它们。

我希望你们能给我一个良好的开端,因为我找不到任何方法来搜索地图的名称。

1 个答案:

答案 0 :(得分:0)

让我们使用here中的explore()函数将os.walk()的结果保存到字典中。

之后,只需迭代名称并将其与模式匹配。

我的文件夹:

.\all_data
.\all_data\sub1
.\all_data\sub1\subsub1
.\all_data\sub1\subsub1\some_files
.\all_data\sub1\subsub2
.\all_data\sub2

def explore(starting_path):
  alld = {'': {}}

  for dirpath, dirnames, filenames in os.walk(starting_path):
    d = alld
    dirpath = dirpath[len(starting_path):]
    for subd in dirpath.split(os.sep):
      based = d
      d = d[subd]
    if dirnames:
      for dn in dirnames:
        d[dn] = {}
    else:
      based[subd] = filenames
  return alld['']

data = explore('.')

for k, v in data['all_data'].iteritems():
    if v:
        for key in v:
            if 'subsub' in key:
                print key

>>> {'all_data': {'sub1': {'subsub1': {'some_files': []}, 'subsub2': []},
          'sub2': []}}
>>> subsub2
>>> subsub1

您可以在if 'subsub' in key:使用更智能的验证作为正则表达式等等。