ホームページ >バックエンド開発 >Python チュートリアル >文字列検索関数が常に True を返すのはなぜですか?
テキスト ファイル内の文字列の検索
テキスト ファイル内の特定の文字列の存在を検出しようとして、文字列の存在に関係なく、コードが予期せず True を返す問題。コードを調査して問題を修正しましょう:
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"
変数名 blabla は、検索しようとしている文字列があることを示唆していますが、それがコード内で定義されていません。これが、コードが常に True を返す問題の原因である可能性があります。 check() 関数を実行する前に、検索している適切な文字列を使用して blabla を定義していることを確認してください。
ファイル読み取りを使用した代替アプローチ:
with open('example.txt') as f: if 'blabla' in f.read(): print("true")
これメソッドはファイル全体をメモリに読み込み、文字列の直接検索を可能にします。ただし、このアプローチはメモリ制限のため、大きなファイルには適さない可能性があることに注意してください。
mmap アプローチ:
import mmap with open('example.txt') as f: s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ) if s.find('blabla') != -1: print('true')
mmap を使用するとメモリを作成できます。ファイルのマップされた表現により、ファイル全体をメモリに読み込まずに基礎となるファイルを使用する「文字列のような」オブジェクトが効果的に作成され、メモリ使用量が削減されます。
以上が文字列検索関数が常に True を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。