我有一个python脚本,可以跟踪多个目录名称作为单个变量。其中一些目录可能存在,而其他目录可能需要在执行时创建。
例如,如果我有这个目录树:
./top
/a
/a1
/a2
/b
/b1
/c
然后我当前跟踪具有单个变量的所有目录路径名称:
top_path = os.path.join(os.curdir, 'top')
a_path = os.path.join(top_path, 'a')
# etc...
但如果不是实际的操作系统目录支持,以某种方式组织它们会很好,如果不是实际的OS目录支持。
在python中是否有一些管理目录树(或任何变量树)的标准方法?或者我应该将所有内容存储在嵌套列表或元组中,还是创建自己的类?像top.a.a1
返回'./top/a/a1'这样的API很棒。
答案 0 :(得分:3)
一个词典怎么样?类似的东西:
tree = {
'top': {
'a': {
'path': a_pathvar,
'a1':
'a2':
}
'b': {
'path': b_pathvar,
}
}
}
然后,您可以使用a1
轻松访问tree['top']['a']['a1']['path']
的路径变量。您可以使用一行代码轻松创建此树结构:
def tree(): return defaultdict(tree)
此结构的一个不错的属性是,如果您尝试创建路径,则不需要存在中间键:
tree['top']['a']['long']['tree']['path'] = path_var
这将自动为您创建中间密钥
This页面详细介绍。