Python:从string中应用if语句

时间:2015-03-11 16:17:45

标签: python if-statement

我在.ini文件中有一个if语句:

critical= $TREND$>=40

在我的脚本中,我用我的值替换$ TREND $,所以我有一个变量:

critical = "10.5>=40"

我尝试执行此if语句以了解它是真还是假。

if critical:
   print "It's critical!"

(我知道它只会检查关键是否为空)

2 个答案:

答案 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}}会正常工作