[파이썬] 파일의 특정 문자열 특정 행 찾기

파이썬을 사용하면 파일에서 특정 문자열이 포함된 특정 행을 찾아낼 수 있습니다. 이 기능은 텍스트 파일에서 원하는 데이터를 추출하거나 특정 조건에 맞는 행을 필터링하는데 유용합니다.

다음은 이 기능을 구현하는 방법입니다.

def find_text_in_file(file_path, search_string):
    line_number = 1
    found_lines = []

    with open(file_path, 'r') as file:
        for line in file:
            if search_string in line:
                found_lines.append((line_number, line.strip()))
            line_number += 1

    return found_lines

위의 코드는 find_text_in_file 함수를 정의하고 이 함수를 사용하여 파일에서 특정 문자열을 찾습니다. file_path 매개변수에는 검색 대상 파일의 경로를, search_string 매개변수에는 찾고자 하는 문자열을 전달합니다.

함수는 파일을 열고 for 루프를 사용하여 각 행을 순회합니다. search_string이 행에 포함되어 있으면 해당 행의 번호와 내용을 found_lines 리스트에 추가합니다. 마지막으로, 모든 행을 확인한 후에는 found_lines를 반환합니다.

다음은 함수를 사용하는 예시입니다.

file_path = 'sample.txt'
search_string = 'example'

found_lines = find_text_in_file(file_path, search_string)

if len(found_lines) > 0:
    for line_number, line_content in found_lines:
        print(f"Found '{search_string}' at line {line_number}: {line_content}")
else:
    print(f"'{search_string}' not found in the file.")

위의 예시에서는 sample.txt 파일에서 ‘example’이라는 문자열이 포함된 행을 찾습니다. found_lines 리스트에 결과가 저장되고, 결과를 확인하여 해당 행을 출력합니다. 검색 결과가 없는 경우, “example not found in the file.”라는 메시지가 출력됩니다.

위의 예시 코드에서는 파일이 텍스트 파일인 경우를 가정하고 있지만, 다른 형식의 파일에서도 같은 방법으로 특정 문자열을 찾을 수 있습니다. 단지 파일을 읽고 검색하는 방법만 약간 다를 뿐입니다.

이와 같은 방법을 사용하여 파일에서 특정 문자열을 찾을 수 있으며, 이를 응용하여 원하는 작업을 수행할 수 있습니다. 파일을 처리하거나 데이터를 추출하는 등 다양한 상황에서 유용하게 사용할 수 있습니다.