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