我想将一个字符串写入文件,只要它目前不在文件中。
我的第一个想法是做这样的事情,但是它没有在文件中写任何东西。
with open("FILE PATH", "a+") as database:
for lines in database.read():
if 'MY STRING' in lines:
continue
else:
database.write('MY STRING')
首先,我在这里做错了什么?其次,假设这个功能正常,是否有更有效的方法来做到这一点?我假设有。
由于
答案 0 :(得分:1)
使用database.read()
将读取您的文本文件并返回包含整个文件的单个字符串。循环使用此字符串将分别返回该字符串中的每个字符,因此您无法在其中找到'MY STRING'
。只需在整个文件中查找'MY STRING'
,就像这样:
with open("FILE PATH", "a+") as database:
if 'MY STRING' not in database.read():
database.write('MY STRING')
您不需要第一个if
语句,因为它只有continue
,因此您只有一个if
,这使得它更多一点高效。