Python 3을 사용하여 파일에서 텍스트 검색 및 바꾸기
Python 3에서는 다양한 방법을 사용하여 파일에서 텍스트를 검색하고 바꿀 수 있습니다. 행동 양식. 제공된 코드에는 한 가지 일반적인 접근 방식이 설명되어 있습니다.
코드 분석
제공된 코드는 사용자로부터 파일 경로뿐 아니라 찾고 바꿀 텍스트를 읽습니다. 그런 다음 읽기 및 쓰기를 위해 파일을 열고, fileinput을 사용하여 검색 텍스트를 검색하고, 이를 대체 텍스트로 바꾸고, 수정된 내용을 파일에 씁니다.
'abcd 교체 관련 문제 ' by 'ram'
교체 결과와 관련해 보고된 문제는 'abcd' 문자열이 'ram'보다 길기 때문에 발생합니다. 'abcd'가 'ram'으로 바뀌면 대체된 텍스트 끝에 있는 추가 문자가 제거되지 않아 "정크 문자"가 관찰됩니다.
해결 방법
이 문제를 해결하려면 검색 문자열과 바꾸기 문자열 사이의 잠재적인 길이 차이를 고려해야 합니다. 올바르게 작동해야 하는 코드의 업데이트된 버전은 다음과 같습니다.
import os import fileinput print("Text to search for:") textToSearch = input("> ") print("Text to replace it with:") textToReplace = input("> ") print("File to perform Search-Replace on:") fileToSearch = input("> ") tempFile = open(fileToSearch, 'r+') for line in fileinput.input(fileToSearch): if textToSearch in line: tempFile.write(line.replace(textToSearch, textToReplace)) else: tempFile.write(line) tempFile.close() input('Press Enter to exit...')
업데이트된 구현
textToSearch의 모든 항목을 textToReplace로 바꾸는 대신 업데이트된 코드는 줄을 사용합니다. .replace()를 루프 내에서 발견하여 발견된 특정 항목만 교체되도록 합니다. 이 수정을 통해 잔여 정크 문자가 제거됩니다.
메모리 효율적인 솔루션
코드에서는 파일이 메모리에 완전히 들어맞는다고 가정합니다. 파일이 너무 크면 메모리 문제를 방지하기 위해 파일을 청크로 읽고 쓰는 것이 좋습니다.
위 내용은 Python 3를 사용하여 파일에서 텍스트를 효율적으로 검색하고 바꿀 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!