텍스트 파일에서 문자열 검색
텍스트 파일 내에 특정 문자열이 있는지 확인하고 다양한 작업을 실행하려는 경우 결과에 따라. 그러나 노력에도 불구하고 코드는 지속적으로 True를 반환하므로 당황스럽습니다. 이 가이드는 문제를 정확히 찾아내고 목표 달성을 위한 대체 접근 방식을 제공하는 데 도움이 될 것입니다.
제시하신 원본 코드에는 결정적인 결함이 있었습니다. 즉, 파일 개체를 닫지 못해 예상치 못한 동작이 발생할 수 있었습니다. 적절한 파일 닫기와 함께 try/finally 블록을 추가하면 코드가 안정적이 됩니다.
def check(): try: datafile = open('example.txt') found = False for line in datafile: if 'blabla' in line: found = True break finally: datafile.close() check() if found: print("true") else: print("false")
파일 닫기를 자동으로 처리하므로 파일을 열고 닫는 간결하고 안전한 방법을 위해 with 문을 사용하는 것이 좋습니다.
with open('example.txt') as datafile: found = False for line in datafile: if 'blabla' in line: found = True break if found: print("true") else: print("false")
텍스트 파일의 크기가 적당한 경우 전체 파일을 문자열로 읽어 다른 접근 방식을 사용할 수 있습니다. 이 방법은 각 줄을 반복하는 것보다 더 빠르고 간단합니다.
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을 사용하는 경우 find()의 하위 시퀀스를 바이트 객체로 처리합니다. (예: b'blabla') Python 인터프리터의 mmap 동작과 일치합니다.
위 내용은 Python의 텍스트 파일에 문자열이 있는지 어떻게 확실하게 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!