Python && 和条件不工作

Python && And Conditional Not Working

我正在寻找满足两个条件的 CSV 文件的提取行。

例如,我想提取具有特定唯一代码和特定日期的行。

目前,我的代码只提取满足以下条件之一的行:

日志中的行:

with open("log.csv", 'a') as csvfile:

    if ("code123" and "29/07/2016") in line:   
            print(line)

我也试过了

with open("log.csv", 'a') as csvfile:

    if ("code123") and ("29/07/2016 ") in line:   
            print(line)

但似乎提取了与该日期匹配但不包含唯一代码的行。

日志文件的格式有点像这样:

code123, 1001, 29/07/2016 14:01, 100

我试过在日期后有和没有 space 的代码:

    if ("code123") and ("29/07/2016") in line:   

    if ("code123") and ("29/07/2016 ") in line: 

万一时间与日期在同一个单元格中是个问题。

但它似乎只是提取仅与日期匹配的行(并打印任何具有日期读数的唯一代码,而不是指定的代码)。

有人可以帮忙吗?

我尝试这样做的原因是我可以根据日期和唯一 ID 将日志文件分成单独的文件。所以我希望某个键的某个日期的所有读数都在一个文件中。

尝试

if "code123" in line and "29/07/2016" in line:

因为 and returns False 或最后一个操作数,即

x and y == y  # iff bool(x) is True and bool(y) is True

这部分

("code123" and "29/07/2016") 

始终计算为“29/07/2016”,您剩下

if "29/07/2016" in line:

原因

a and b in c == (a and b) in c   

而不是 (a) and (b in c),是由于运算符优先级规则:http://www.tutorialspoint.com/python/operators_precedence_example.htm

优先规则也负责

a in c and b in c == (a in c) and (b in c)

因为 in 的优先级高于 and。无论如何,在这种情况下,为了清楚起见,最好添加括号。