텍스트 파일 내에서 문자열 검색
텍스트 파일 내에서 특정 문자열이 있는지 확인하려는 시도에서 프로그램은 예상치 못한 동작에 직면하게 됩니다. 이 문제를 해결하려면 잘못된 결과의 근본 이유를 이해하는 것이 중요합니다.
원본 코드:
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"
Python with Open:
대체 접근 방식 텍스트 파일을 읽는 것은 'open()' 함수와 함께 'with' 문을 활용하는 것입니다. 이 방법은 파일 닫기를 자동으로 처리하는 '파일과 유사한' 객체를 생성합니다.
with open('example.txt') as f: if 'blabla' in f.read(): print("true")
메모리 매핑 사용:
텍스트 파일 작업을 위한 또 다른 기술은 메모리입니다. 매핑. 이 접근 방식은 전체 파일을 문자열과 같은 객체로 메모리에 읽어 더 빠르게 액세스하고 정규식을 사용할 수 있게 해줍니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!