" =="没有做我认为应该在Python中做的事情

时间:2015-03-04 22:13:12

标签: python comparison

在我正在编写的脚本中,我执行以下操作:

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仍然相当新...我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

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

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

总而言之,你会做点什么

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