본문으로 건너뛰기

파이썬에서 여러 파일에서 텍스트를 찾고 바꾸는 방법

다음은 Python에서 여러 파일에서 텍스트를 찾고 바꾸는 방법에 대한 자세한 단계별 튜토리얼입니다.

단계 1: 필요한 모듈 가져오기​

먼저, Python 스크립트에서 필요한 모듈을 가져와야 합니다. 이 경우 파일 작업에 os 모듈을 사용하고, 파일 내에서 편집을 위해 fileinput 모듈을 사용할 것입니다.

import os
import fileinput

단계 2: 찾기 및 바꾸기 함수 정의하기​

이제 찾기 및 바꾸기 작업을 수행하는 함수를 정의해 보겠습니다. 이 함수는 세 개의 매개변수를 받습니다. 파일이 위치한 디렉토리 경로, 찾을 문자열, 바꿀 문자열입니다.

def find_replace(directory, search, replace):
for dirpath, dirnames, filenames in os.walk(directory):
for filename in filenames:
filepath = os.path.join(dirpath, filename)
with fileinput.FileInput(filepath, inplace=True) as file:
for line in file:
print(line.replace(search, replace), end='')

단계 3: 찾기 및 바꾸기 함수 호출하기​

이제 적절한 매개변수를 사용하여 find_replace 함수를 호출할 수 있습니다. 예를 들어, "files"라는 디렉토리 내의 모든 파일에서 텍스트 "old"를 "new"로 바꾸고 싶다면 다음과 같이 할 수 있습니다.

find_replace("files", "old", "new")

단계 4: 스크립트 실행하기​

Python 스크립트를 .py 확장자로 저장하고 Python 인터프리터를 사용하여 실행합니다. 스크립트는 지정된 검색 문자열을 해당 디렉토리 내의 모든 파일에서 재귀적으로 찾아 지정된 바꾸기 문자열로 바꿉니다.

사용 예시​

"files"라는 이름의 디렉토리에 file1.txt와 file2.txt라는 두 개의 텍스트 파일이 있다고 가정해 봅시다. 두 파일 모두 "old"라는 단어가 포함되어 있으며, 이를 "new"로 바꾸고 싶습니다.

file1.txt:

This is an old file.

file2.txt:

This is another old file.

다음 명령을 사용하여 스크립트를 실행한 후:

python find_replace.py

file1.txt와 file2.txt의 내용은 다음과 같이 업데이트될 것입니다:

file1.txt:

This is an new file.

file2.txt:

This is another new file.

이것으로 Python을 사용하여 여러 파일에서 텍스트를 찾고 바꾸는 작업을 성공적으로 수행했습니다.

이 스크립트는 원본 파일을 수정하여 바꾸기 작업을 수행합니다. 원본 파일을 그대로 유지하고 바꾼 텍스트로 새 파일을 만들려면 스크립트를 수정해야 합니다.