从字符串中评估python中的if语句

时间:2015-12-04 20:11:48

标签: python if-statement dynamic

我正在开发一个项目,允许用户定义过滤器以对csv文件中的数据进行排序。他们可以根据需要创建尽可能多的过滤器,因此我尝试从字符串创建if语句,随着用户定义更多过滤器,该语句将变得更长。

我的字符串变量的输出是这样的:row [0] ==“6/1/2014 0:00:00”

为简单起见,我只需将其硬编码到下面的示例代码中的变量名中

问题是它没有正确评估这个if语句。它返回文件的每一行。

f = open("somefile.csv", "r")
r = csv.reader(f)

statement = 'row[0]=="6/1/2014 0:00:00"'
for row in r:
    if statment:
       print(row)

1 个答案:

答案 0 :(得分:2)

尽管存在明显的安全原因,但您可以使用eval

if eval(statement):
    print row