“==”没有做我认为应该做的 Python

"==" not doing what i think it should do in Python

在我正在处理的脚本中,我执行以下操作:

data["serial"] = md5.new(json.dumps(data["data"])).hexdigest()
...
...
lst = serialFile.readlines()
    if(len(lst) > 0):
        lastLine = lst[len(lst) - 1]     
...
...
print "lLn : " , lastLine
print "md5 : " , str(data["serial"])
if lastLine == data["serial"]:

我可以验证当我打印 lLn 和 md5 时它们是相同的。我觉得我应该触发逻辑语句……但我没有……

我也试过使用 :

if lastLine == str(data["serial"]):

我对 Python 还是很陌生...我在这里缺少什么?

假设 readlines() 是在一个打开的文件句柄上完成的,它将把整个流读出到一个行列表中,其中的行包括回车符 return 和换行符。您想要在行上调用 rstrip() 以删除所有可能存在的额外换行符和回车 return 字符。如果您还想删除末尾的其他空白字符,则需要调用 rstrip('\r\n')

另一个提示:你不需要找到列表的长度来得到最后一个元素,你可以简单地在你的情况下做lst[-1]

把它们放在一起,你会做类似

lst = serialFile.readlines()
    if(len(lst) > 0):
        lastLine = lst[-1].rstrip('\r\n')