> 백엔드 개발 > 파이썬 튜토리얼 > Python의 검색 및 바꾸기는 파일 편집 시 가변 텍스트 길이를 어떻게 처리할 수 있습니까?

Python의 검색 및 바꾸기는 파일 편집 시 가변 텍스트 길이를 어떻게 처리할 수 있습니까?

Linda Hamilton
풀어 주다: 2024-12-15 20:33:10
원래의
947명이 탐색했습니다.

How Can Python's Search-and-Replace Handle Variable Text Lengths in File Editing?

Python 파일 검색 및 다른 텍스트 길이로 바꾸기

Python 3를 사용하여 파일 내에서 검색 및 바꾸기를 수행하려고 시도하는 동안 일부 사용자 대체 텍스트가 원본 텍스트보다 짧거나 길면 문제가 발생합니다. 이로 인해 의도하지 않은 문자가 파일에 추가될 수 있습니다.

제공된 코드를 고려하십시오.

# Get user input for search and replacement text
textToSearch, textToReplace, fileToSearch = input("Text to search for: "), input("Text to replace it with: "), input("File to perform Search-Replace on: ")

# Open the file and loop through each line
with open(fileToSearch, 'r+') as tempFile:
    for line in fileinput.input(fileToSearch):
        # Perform replacement only when a match is found
        if textToSearch in line:
            line = line.replace(textToSearch, textToReplace)
        # Write the modified line back to the file
        tempFile.write(line)
로그인 후 복사

그러나 이 접근 방식은 긴 텍스트를 더 짧은 텍스트로 바꾸는 경우 실패합니다. 원본 텍스트가 남습니다 뒤에.

해결책:

이 문제를 해결하려면 전체 파일을 메모리로 읽고 검색 및 바꾸기 작업을 수행한 다음 수정된 파일을 쓰는 것이 좋습니다. 별도의 단계로 콘텐츠를 파일로 되돌립니다.

# Read the file into memory
with open('file.txt', 'r') as file:
    filedata = file.read()

# Perform the replacement
filedata = filedata.replace('abcd', 'ram')

# Write the modified content back to the file
with open('file.txt', 'w') as file:
    file.write(filedata)
로그인 후 복사

이 방법을 사용하면 의도하지 않은 내용을 추가하지 않고 파일이 제자리에서 수정됩니다. 문자입니다.

위 내용은 Python의 검색 및 바꾸기는 파일 편집 시 가변 텍스트 길이를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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