텍스트 검색 및 바꾸기
파일에서 텍스트를 검색하고 바꾸는 것은 프로그래밍에서 일반적인 작업입니다. Python은 os, sys 및 fileinput과 같은 라이브러리를 사용하여 이를 수행하는 여러 가지 방법을 제공합니다.
Original Attempt
일반적인 접근 방식은 루프를 사용하여 파일 라인을 반복하는 것입니다. 한 줄씩 검색 텍스트를 확인하고 이를 대체 텍스트로 바꿉니다. 예는 다음과 같습니다.
import os import sys 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: print('Match Found') else: print('Match Not Found!!') tempFile.write(line.replace(textToSearch, textToReplace)) tempFile.close() input('\n\n Press Enter to exit...')
내부 교체 문제
이 접근 방식은 간단한 교체에 적합합니다. 그러나 대체 텍스트가 원본 텍스트보다 길거나 짧을 경우 문제가 발생할 수 있습니다. 예를 들어, 'abcd'를 'ram'으로 바꾸면 끝에 추가 문자가 남습니다("hi this is ram hi this is ram").
해결책: 읽기, 수정, 쓰기
이러한 문제를 방지하려면 전체 파일을 메모리로 읽어서 수정한 다음 별도의 단계로 파일에 다시 쓰는 것이 좋습니다. 이 접근 방식을 사용하면 파일 구조가 그대로 유지됩니다.
# Read in the file with open('file.txt', 'r') as file: filedata = file.read() # Replace the target string filedata = filedata.replace('abcd', 'ram') # Write the file out again with open('file.txt', 'w') as file: file.write(filedata)
이 방법은 대용량 파일에 더 효율적이며 쓰기 프로세스 중 중단이 발생하는 경우 데이터 손실을 방지합니다.
위 내용은 Python 파일에서 텍스트를 효율적으로 검색하고 바꾸는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!