我一直在努力一点点打造这段代码,如果有其他人这样做的更加简单/高效的方式我想知道:连结之重复序列
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