我想在地圖中搜索地圖名稱。爲了更清楚我想要什麼,這是地圖結構:在地圖中搜索子地圖
\All data
\Submap1
\SubSubmap1
\some files
\Subsubmap2
\Submap2
\Submap3
我想要做的是搜索SubSubmap's。我想在子圖的名稱上搜索它們。
我希望你們可以給我一個開始,因爲我找不到任何方式搜索地圖的名稱。
我想在地圖中搜索地圖名稱。爲了更清楚我想要什麼,這是地圖結構:在地圖中搜索子地圖
\All data
\Submap1
\SubSubmap1
\some files
\Subsubmap2
\Submap2
\Submap3
我想要做的是搜索SubSubmap's。我想在子圖的名稱上搜索它們。
我希望你們可以給我一個開始,因爲我找不到任何方式搜索地圖的名稱。
我們使用explore()
函數here
將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:
爲正則表達式等更智慧的驗證。
如何將它存儲在python中? –
對於其他程序,我使用了一個路徑,並用for循環遍歷所有文件。據我所知,這是不可能的。特別是如果我需要進入這些地圖的子圖。所有這些地圖和數據都在本地存儲。 – Jayyzz
我會說你需要'os.walk'。 – xbello