我一直在努力一點點打造這段代碼,如果有其他人這樣做的更加簡單/高效的方式我想知道:連結之重複序列
fsSchema = {'published': {'renders': {'SIM': ('fold1', 'fold2'), 'REN': ('fold1', 'fold2')}}}
def __buildPathFromSchema(self, schema, root=''):
metaDirs = []
for dir_ in schema.keys():
root = os.path.join(root, dir_)
if isinstance(schema[dir_], dict):
return self.__buildPathFromSchema(schema[dir_], root)
if isinstance(schema[dir_], tuple):
for i in schema[dir_]:
bottom = os.path.join(root, i)
metaDirs.append(bottom)
root = os.sep.join(os.path.split(root)[:-1])
return metaDirs
基本上我想要做的就是從fsSchema這樣的預定義結構生成路徑。注意最新的迭代總是一個元組。
的輸出中的樣子:
[ '發表\渲染\ REN \ fold1', '出版\渲染\ REN \ fold2', '出版\渲染\ SIM \ fold1', 「發表\渲染\ SIM \ fold2']
謝謝!
哇,那很快。我確實嘗試過使用發生器,但無法使其工作。非常感謝(: – Xavier 2010-10-01 21:12:28
@ Xavier:我碰巧在這裏有一個文件中有東西:) – sth 2010-10-01 21:16:17