You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于列表使用braceexpand结合os.makedirs创建目录结构?

使用braceexpand结合动态列表生成目录结构

当然可以用braceexpand实现你想要的动态目录生成需求!关键是把你的动物列表转换成符合brace语法的字符串,再传给braceexpand处理,这样既能保留它的可读性,又能实现动态化。

具体实现步骤

  1. 先定义你的动态动物列表(可随时调整子集):
    animals = ['cat', 'dog', 'bird']  # 比如可以改成只留['dog']或['cat', 'dog']
    things = ['thing1', 'thing2', 'thing3', 'thing4']
    
  2. 把列表转换成brace格式的字符串:用','.join()把列表元素拼接成cat,dog,bird,再套上大括号,嵌入到路径模板中。
  3. 用braceexpand展开路径,循环创建目录即可。

完整代码示例:

from braceexpand import braceexpand
import os

animals = ['cat', 'dog', 'bird']
things = ['thing1', 'thing2', 'thing3', 'thing4']

# 构造符合brace语法的路径模板
path_template = f'/Users/admin/Desktop/{{{",".join(animals)}}}/{{{",".join(things)}}}'

# 展开路径并创建目录
for path in braceexpand(path_template):
    os.makedirs(path, exist_ok=True)

为什么这样可行?

  • ','.join(animals)会把列表转换成cat,dog,bird,加上外层大括号后就变成了{cat,dog,bird},完全匹配braceexpand的语法要求。
  • 这种写法和你最初手动写brace语法的逻辑一致,但可以通过修改animals列表灵活控制要生成的动物目录子集,完美适配你“有时仅需dog,有时需多个”的需求。
  • 相比嵌套列表推导式,这种写法更贴合你偏好的braceexpand可读性风格,逻辑也更直观。

内容的提问来源于stack exchange,提问作者abra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:49:55