> 백엔드 개발 > 파이썬 튜토리얼 > Python 3를 사용하여 파일에서 텍스트를 효율적으로 검색하고 바꿀 수 있습니까?

Python 3를 사용하여 파일에서 텍스트를 효율적으로 검색하고 바꿀 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-28 18:44:18
원래의
988명이 탐색했습니다.

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

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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