본문으로 건너뛰기

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

다음은 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.txtfile2.txt라는 두 개의 텍스트 파일이 있다고 가정해 봅시다. 두 파일 모두 "old"라는 단어가 포함되어 있으며, 이를 "new"로 바꾸고 싶습니다.

file1.txt:

This is an old file.

file2.txt:

This is another old file.

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

python find_replace.py

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

file1.txt:

This is an new file.

file2.txt:

This is another new file.

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

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