有条件地写入文件的最有效方法?

时间:2016-08-03 14:26:45

标签: python

我想将一个字符串写入文件,只要它目前不在文件中。

我的第一个想法是做这样的事情,但是它没有在文件中写任何东西。

with open("FILE PATH", "a+") as database:
    for lines in database.read():
        if 'MY STRING' in lines:
            continue
        else:
            database.write('MY STRING')

首先,我在这里做错了什么?其次,假设这个功能正常,是否有更有效的方法来做到这一点?我假设有。

由于

1 个答案:

答案 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,这使得它更多一点高效。