使用模板工具包检索过滤后的文件列表
Retrieving filtered list of files using template toolkit
我想检索满足给定正则表达式规则或字符串的目录中的文件内容(例如 ./*.xml)。
我找到了以下示例
[% FOREACH directory.files.grep('\.txt$') %]
...
[% END %]
但是不知道怎么用。这能解决我的问题吗?
快速查看文档表明 directory.files
的输出是一个对象集合,因此 .grep()
不太可能起作用。它有name
、isdir
等方法。
最简单的解决方案如下:
[%- FOREACH file IN directory.files;
#NEXT UNLESS file.name.match('\.xml$');
NEXT UNLESS file.ext == 'xml';
...
END -%]
编辑:根据 ThisSuitIsBlackNot 的建议改进了答案。
我想检索满足给定正则表达式规则或字符串的目录中的文件内容(例如 ./*.xml)。
我找到了以下示例
[% FOREACH directory.files.grep('\.txt$') %]
...
[% END %]
但是不知道怎么用。这能解决我的问题吗?
快速查看文档表明 directory.files
的输出是一个对象集合,因此 .grep()
不太可能起作用。它有name
、isdir
等方法。
最简单的解决方案如下:
[%- FOREACH file IN directory.files;
#NEXT UNLESS file.name.match('\.xml$');
NEXT UNLESS file.ext == 'xml';
...
END -%]
编辑:根据 ThisSuitIsBlackNot 的建议改进了答案。