我正在开发一个项目,允许用户定义过滤器以对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)
答案 0 :(得分:2)
尽管存在明显的安全原因,但您可以使用eval
:
if eval(statement):
print row