在地图中搜索子地图

2024-04-25 23:59:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在地图中搜索地图名称。为了更清楚地说明我想要什么,这是地图结构:

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

   \Submap2
   \Submap3

我想做的是搜索子地图的。我想在子地图的名称上搜索它们。你知道吗

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


Tags: 方法名称data地图somefilesall结构
1条回答
网友
1楼 · 发布于 2024-04-25 23:59:37

让我们使用来自^{}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:如regex等等。你知道吗

相关问题 更多 >