Python字符串不在文件读取中

Python字符串不在文件读取中,python,Python,我想检查文件中是否已经存在字符串,并根据此检查执行某些操作。更详细地说,脚本每天启动时,都会在csv文件中添加一行,其中一个字段是日期 import time today_fmt = time.strftime("%d/%m/%Y") file = open('allowance.csv','a+') var0 = today_fmt not in file.read() var1 = '30/10/2017' not in file.read() 其中allowment.csv文件如下所示

我想检查文件中是否已经存在字符串,并根据此检查执行某些操作。更详细地说,脚本每天启动时,都会在csv文件中添加一行,其中一个字段是日期

import time
today_fmt = time.strftime("%d/%m/%Y")
file = open('allowance.csv','a+')

var0 = today_fmt not in file.read()
var1 = '30/10/2017' not in file.read()
其中allowment.csv文件如下所示:

28/10/2017,26.7,774.31
29/10/2017,25.62,717.29
30/10/2017,26.57,717.29
在这种情况下,今天的fmt将保持“30/10/2017”,但当我运行脚本(使用Python3.4)时,var0和var1都是真的,我不知道我错在哪里。我也尝试过:

var0 = str(today_fmt) not in file.read()

因为当您使用+选项打开文件时,文件指针将位于文件的末尾

import time 
today_fmt = time.strftime("%d/%m/%Y") 
file = open('allowance.csv','a+')
file.seek(0) # File pointer will be at the begining of file
var0 = today_fmt not in file.read() 
file.seek(0) # Seek again 
var1 = '30/10/2017' not in file.read()

因为当您使用+选项打开文件时,文件指针将位于文件的末尾

import time 
today_fmt = time.strftime("%d/%m/%Y") 
file = open('allowance.csv','a+')
file.seek(0) # File pointer will be at the begining of file
var0 = today_fmt not in file.read() 
file.seek(0) # Seek again 
var1 = '30/10/2017' not in file.read()

这就是问题所在,如果你能提供解决方案,我会投赞成票,你也应该一直这样做;)(还有一个很好的解释为什么你的答案应该是正确的)谢谢你的评论。我修正了Birbal的代码,使其正常工作,所以我不清楚您何时说我不会给出解决方案。对不起,如果我不理解你的评论,我是一个英语很差的人:(你应该解释为什么你的解决方案有效。你必须证明你所做的是正确的。例如,我建议用“r”打开文件,将文件指向起点。为什么你的解决方案更好,或者为什么你的解决方案有效?另外,请阅读本指南:太棒了,非常感谢!因此我正确地理解了,我需要更改t。)每次我检查.After file.read()时,文件指针都位于文件的开头,指针将回到末尾?因为稍后我需要在文件末尾添加更多行。这就是为什么我使用+打开文件,因为我需要不时读取并追加。这就是问题所在,如果您提供解决方案,我将向上投票,您也应该始终这样做;)(以及一个关于为什么你的答案应该是正确的很好的解释)谢谢你的评论。我修正了Birbal的代码,使其正确工作,所以我不清楚你何时说我不给出解决方案。抱歉,如果我不理解你的评论,我是一个英语不好的人:(你应该解释为什么你的解决方案有效。你必须证明你所做的是正确的。例如,我建议用“r”打开文件,将文件指向起点。为什么你的解决方案更好,或者为什么你的解决方案有效?另外,请阅读本指南:太棒了,非常感谢!因此我正确地理解了,我需要更改t。)每次我进行检查时,文件指针都会出现在文件的开头。在file.read()之后,指针会回到末尾?因为以后我需要在文件的末尾添加更多行。这就是为什么我用+打开文件,因为我需要不时地读取和追加。