テキスト ファイル内の文字列を検索
プログラムは、テキスト ファイル内に特定の文字列が存在するかどうかを確認しようとして、予期せぬ動作に遭遇する。この問題を修正するには、誤った結果の背後にある根本的な理由を理解することが重要です。
元のコード:
def check(): datafile = file('example.txt') found = False for line in datafile: if blabla in line: found = True break check() if True: print "true" else: print "false"
誤った結果の理由:
提供されたコードは、ファイル内に文字列が存在するかどうかに関係なく、一貫して True を返します。次のブロックの「if True」は、前のループのロジックに関連付けられていません。
if True: print "true" else: print "false"
Open を使用した Python:
テキスト ファイルでは、「with」ステートメントを「open()」関数と組み合わせて使用します。このメソッドは、ファイルのクローズを自動的に処理する「ファイルのような」オブジェクトを作成します。
with open('example.txt') as f: if 'blabla' in f.read(): print("true")
メモリ マッピングの使用:
テキスト ファイルを操作するためのもう 1 つのテクニックはメモリです。マッピング。このアプローチでは、ファイル全体が文字列のようなオブジェクトとしてメモリに読み込まれ、より高速なアクセスと正規表現の使用が可能になります。
import mmap with open('example.txt', 'rb', 0) as file, \ mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s: if s.find(b'blabla') != -1: print('true')
これらの提案に従うことで、テキスト ファイル内の文字列を正確に検索し、期待通りの結果が得られます。
以上がPython テキスト ファイルの文字列検索で常に True が返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。