在我正在编写的脚本中,我执行以下操作:
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仍然相当新...我在这里缺少什么?
答案 0 :(得分:0)
假设readlines()
在打开的文件句柄上完成,它会将整个流读出到一个行列表中,行包括回车符和换行符。您想在行上调用rstrip()
以删除可能存在的所有额外换行符和回车符。如果您要删除的末尾还有其他空白字符,则可以改为调用rstrip('\r\n')
。
另一个提示:你不需要找到列表的长度来获取最后一个元素,你可以在你的情况下做lst[-1]
。
总而言之,你会做点什么
lst = serialFile.readlines()
if(len(lst) > 0):
lastLine = lst[-1].rstrip('\r\n')