gpt4 book ai didi

python-2.7 - jinja2 内置过滤器中的基本名称或目录名称?

转载 作者:行者123 更新时间:2023-12-02 10:21:31 26 4
gpt4 key购买 nike

是否有任何方法可以仅使用内置过滤器在 jinja2 中执行 basenamedirname ?例如。像这样:

#!/usr/bin/python
import jinja2

mybin = '/my/favorite/full/path/foo'
t = jinja2.Template("my binary is {{ mybin }}")
print t.render()
t = jinja2.Template("my basename is {{ mybin|basename() }}")
print t.render()
t = jinja2.Template("my dirname is {{ mybin|dirname() }}")
print t.render()

1

有什么想法吗?

最佳答案

如果您发现此问题并且正在使用 Ansible,那么这些过滤器 do exist in Ansible .

要获取文件路径的姓氏,例如“/etc/asdf/foo.txt”中的“foo.txt”:

{{ path | basename }}

从路径获取目录:

{{ path | dirname }}

没有 Ansible,可以轻松向 Jinja2 添加自定义过滤器:

def basename(path):
return os.path.basename(path)

def dirname(path):
return os.path.dirname(path)

在渲染模板之前,您可以通过更新环境中的过滤器字典来在模板环境中注册这些内容:

environment.filters['basename'] = basename
environment.filters['dirname'] = dirname

关于python-2.7 - jinja2 内置过滤器中的基本名称或目录名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22562969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com