【问题标题】:Managing the paths of a directory tree in python在python中管理目录树的路径
【发布时间】:2012-05-10 05:00:55
【问题描述】:

我有一个 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...

但如果不是实际的操作系统目录支持,最好以某种尊重目录树的方式组织它们。

在 python 中是否有一些管理目录树(或任何变量树)的标准方法?还是应该将所有内容存储在嵌套列表或元组中,或者甚至创建自己的类?像 top.a.a1 这样返回 './top/a/a1' 的 API 会很棒。

【问题讨论】:

    标签: python path tree directory-structure


    【解决方案1】:

    dict-of-dicts 怎么样?比如:

    tree = {
           'top': {
                  'a': {
                       'path': a_pathvar,
                       'a1':
                       'a2':
                   }
                   'b': {
                        'path':  b_pathvar,
                    }
             }
           }
    

    然后您可以使用tree['top']['a']['a1']['path'] 轻松访问a1 的路径变量。您可以使用一行代码轻松创建此树结构:

    def tree(): return defaultdict(tree)
    

    这种结构的一个很好的特性是,如果您尝试创建路径,则不需要存在中间键:

    tree['top']['a']['long']['tree']['path'] = path_var
    

    这将自动为您创建中间键

    This 页面更详细。

    【讨论】:

      猜你喜欢
      • 2020-04-10
      • 1970-01-01
      • 2018-04-18
      • 2016-11-24
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2016-08-02
      相关资源
      最近更新 更多