텍스트 파일의 문자열 포함 검사
텍스트 파일 내에 특정 문자열이 있는지 확인하려는 시나리오를 생각해 보세요. 식별되면 특정 작업(X)이 실행되어야 합니다. 그렇지 않으면 대체 작업(Y)이 뒤따라야 합니다. 그러나 이 목표를 달성하기 위한 코드 조각은 지속적으로 True를 반환하여 그 정확성에 대해 의아해합니다.
이러한 잘못된 동작의 원인은 if 문 내에 조건 확인이 없기 때문입니다. 적절한 구현은 다음과 같아야 합니다.
if 'blabla' in line:
그러나 텍스트 파일이 상대적으로 큰 경우 전체 파일을 문자열로 읽어서 이를 사용하여 검색을 수행하는 것이 더 효율적일 수 있습니다. 예는 다음과 같습니다.
with open('example.txt') as f: if 'blabla' in f.read(): print("true")
더 큰 파일의 경우 mmap.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')
Python 3에서는 mmap이 bytearray 객체와 유사하므로 검색 문자열을 바이트로 수정해야 한다는 점에 주목할 가치가 있습니다. object:
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')
게다가 대소문자를 구분하지 않는 일치와 같은 고급 검색 기능을 위해 mmap에서 정규식을 활용할 수 있습니다.
import mmap import re with open('example.txt', 'rb', 0) as file, \ mmap.mmap(file.fileno(), 0, access=mmap.ACCESS_READ) as s: if re.search(br'(?i)blabla', s): print('true')
위 내용은 Python의 대용량 텍스트 파일에서 문자열의 존재를 효율적으로 확인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!