[파이썬] 파일의 특정 문자열 검색과 매칭

파이썬은 파일 조작과 문자열 검색을 위한 강력한 기능을 제공합니다. 이를 활용하여 파일에서 특정 문자열을 검색하고 매칭하는 작업을 수행할 수 있습니다. 이번 글에서는 Python의 파일 입출력과 문자열 검색 기능을 사용하여 파일에서 특정 문자열을 찾고 매칭하는 방법에 대해 알아보겠습니다.

파일 읽기

먼저, 파일을 읽기 위해 Python의 open() 함수를 사용합니다. open() 함수는 파일 경로와 함께 사용되며 파일을 열어 파일 객체를 반환합니다. 파일 객체를 사용하여 파일의 내용을 읽을 수 있습니다.

file = open("example.txt", "r")
content = file.read()
file.close()

위의 예제에서는 “example.txt” 파일을 읽기 모드(“r”)로 열고, 파일의 내용을 content 변수에 저장합니다. 파일을 다 읽은 후에는 file.close() 메소드를 호출하여 파일을 닫아주는 것이 좋습니다.

문자열 검색과 매칭

파일을 읽은 후, Python의 문자열 함수를 사용하여 특정 문자열을 검색하고 매칭할 수 있습니다. 예를 들어, 파일에서 특정 단어를 검색하고 매칭하는 경우, str.count() 메소드를 사용할 수 있습니다.

file = open("example.txt", "r")
content = file.read()

# 검색할 단어
keyword = "apple"
# 단어의 출현 횟수
count = content.count(keyword)
print(f"\"{keyword}\"는 파일에서 {count}번 나타납니다.")

file.close()

위의 예제에서는 “example.txt” 파일에서 “apple”이라는 단어를 검색하고, 해당 단어의 출현 횟수를 출력합니다.

또한, 정규식을 사용하여 더 복잡한 패턴의 문자열을 검색할 수도 있습니다. Python의 re 모듈을 import하여 정규식 패턴을 정의하고, re.search() 함수를 사용하여 파일 내에서 매칭되는 부분을 찾을 수 있습니다.

import re

file = open("example.txt", "r")
content = file.read()

# 정규식 패턴
pattern = r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b"
# 매칭된 이메일 주소 리스트
matches = re.findall(pattern, content)
print(f"매칭된 이메일 주소: {matches}")

file.close()

위의 예제에서는 “example.txt” 파일에서 이메일 주소를 찾는 정규식 패턴을 사용하여 매칭되는 이메일 주소를 찾고, 해당 주소들을 리스트로 출력합니다.

마무리

이상으로 Python을 사용하여 파일의 특정 문자열을 검색하고 매칭하는 방법에 대해 알아보았습니다. Python의 강력한 문자열 함수와 정규식 패턴을 활용하면 다양한 분야에서 문자열 검색과 매칭을 수행할 수 있습니다. 파일 조작과 문자열 처리에 익숙해지면 다양한 프로젝트와 작업에서 활용할 수 있는 유용한 능력을 갖게 될 것입니다. Happy coding!