我想为我们的内部项目创建一个模板。
项目的布局包含可变数量的子文件夹。
我想在一些配置文件中指定要创建的子文件夹。 例如,我具有以下文件夹结构:
my_project
|
|___ Tables
| |
| |__ Table1 <--- The folders I would like to create
| |__ Table2 <---|
| |__ Table3 <---|
|
|___ Other_folders
配置文件应具有以下内容:
{
"prj_name": "my_project",
"tables": ["Table1", "Table2", "Table3"]
}
我试图创建以下结构:
{{cookiecutter.prj_name}}
|
|___ Tables
| |
| |__ {% for table in cookiecutter.tables %}{{table}}{% endfor %}
|
|___ Other_folders
并将上述配置添加到cookiecutter.json
。
我使用--no-input
运行cookiecutter。结果只有一个子文件夹(表1)。
还尝试使用以下文件夹名称:{% for table in cookiecutter.tables.keys() %}{{table}}{% endfor %}
使用以下配置:
{
"prj_name": "my_project",
"tables": {
"table1": "table1",
"table2": "table2",
"table3": "table3"
}
}
输出仍然是单个子文件夹(Table2Table1Table3)
有什么想法可以实现所需的结构吗?
答案 0 :(得分:2)
好吧,我最终编写了一个Python脚本,该脚本使用Cookiecutter's package functions和两个模板文件夹。
一个用于主项目的模板文件夹,一个用于表文件夹的模板文件夹。
该脚本将使用cookiecutter.main.cookiecutter
函数创建主项目,并在循环中创建子文件夹。
我在博客中写了更详细的文章。 不确定此处有关发布指向个人博客链接的规则。因此,如果将来有人希望看到它,请在评论中告诉我。