1
文字列がファイルに存在しない場合にのみ、文字列をファイルに書きたいと思います。条件付きでファイルに書き込む最も効率的な方法は?
私の最初の考えはこのようなことでしたが、ファイルに何も書き込んでいません。
with open("FILE PATH", "a+") as database:
for lines in database.read():
if 'MY STRING' in lines:
continue
else:
database.write('MY STRING')
まず、私はここで間違っていますか?第二に、これが適切に機能していると仮定すると、これを行うより効率的な方法がありますか?私はそこにあると仮定しています。 database.read()
を使用して
おかげ
'database.read()'は単一の文字列を返すので、その文字列をループすると、その文字列内のすべての文字が繰り返し処理されます。 – TheGirrafish
ファイルが空の場合、 '.read()'は空の文字列を返しますので、forループの本体は決して実行されません。つまり、ファイルは空ではなく、効率的ではなく、「MY STRING」が前面に表示されていても常にファイル全体を読み込むため、コードは機能します。 'lines'は示唆的なものなので、あなたが望むものとファイルがどのように構造化されているのかを教えてください。 – dhke
@ TheGirrafishあなたの実装はうまくいきました。 – Harrison