> 백엔드 개발 > 파이썬 튜토리얼 > Python 파일에서 텍스트를 효율적으로 검색하고 바꾸는 방법은 무엇입니까?

Python 파일에서 텍스트를 효율적으로 검색하고 바꾸는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-13 02:05:13
원래의
257명이 탐색했습니다.

How Can I Efficiently Search and Replace Text in a Python File?

텍스트 검색 및 바꾸기

파일에서 텍스트를 검색하고 바꾸는 것은 프로그래밍에서 일반적인 작업입니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿