我在.ini文件中有一个if语句:
critical= $TREND$>=40
在我的脚本中,我用我的值替换$ TREND $,所以我有一个变量:
critical = "10.5>=40"
我尝试执行此if语句以了解它是真还是假。
if critical:
print "It's critical!"
(我知道它只会检查关键是否为空)
答案 0 :(得分:2)
一种选择是使用eval
:
critical = eval("10.5>=40")
但是,你必须确定什么是" eval'"是完全可信的,因为它允许您执行任何任意的python代码。也就是说,如果字符串的任何部分由一个不受信任的实体传入,则不要使用它。 (用户,外部api等)。
另一个可能更好的选择可能是使用"模板解析器"允许"不信任"或者"沙盒"执行。例如,Jinja Sandbox mode。
答案 1 :(得分:0)
我会恳请您将.ini
更改为以下内容:
critical_low
critical_high
eval
这可能非常危险,并且除非你想要,否则你的.ini
中没有逻辑那里的逻辑仍然可以在不使用eval
的情况下解决
表示如果eval
只是一个hacky脚本,{{1}}会正常工作