[파이썬] 파일의 특정 문자열 행 삭제

파이썬을 사용하여 특정 문자열이 포함된 행을 파일에서 삭제하는 방법을 알아보겠습니다.

문제 설명

주어진 파일에는 여러 행이 포함되어 있습니다. 그러나 우리는 특정 문자열이 포함된 행을 삭제하고 싶습니다. 이러한 작업을 수행하기 위해 Python을 사용하면 간단하고 효율적인 해결책을 구현할 수 있습니다.

솔루션

파일의 특정 문자열 행을 삭제하기 위해 다음과 같은 단계를 수행할 수 있습니다.

  1. 파일을 읽기 모드(‘r’)로 엽니다.
  2. 읽은 내용을 저장할 빈 리스트를 생성합니다.
  3. 파일을 한 줄씩 순회하면서 특정 문자열이 포함된 행을 건너뜁니다.
  4. 건너뛴 행을 제외한 나머지 행을 리스트에 추가합니다.
  5. 파일을 닫습니다.
  6. 파일을 쓰기 모드(‘w’)로 엽니다.
  7. 리스트에 저장된 내용을 파일에 씁니다.
  8. 파일을 닫습니다.

다음은 위 단계를 구현한 예시 코드입니다:

def delete_rows_with_string(file_path, target_string):
    # 파일을 읽기 모드로 엽니다.
    with open(file_path, 'r') as file:
        # 파일 내용을 읽어오고 특정 문자열이 포함된 행은 건너뜁니다.
        lines = [line for line in file if target_string not in line]
    
    # 파일을 쓰기 모드로 엽니다.
    with open(file_path, 'w') as file:
        # 리스트에 저장된 내용을 파일에 씁니다.
        for line in lines:
            file.write(line)

이제 delete_rows_with_string(file_path, target_string) 함수를 호출하여 특정 문자열을 포함한 행이 삭제된 파일을 생성할 수 있습니다. file_path는 대상 파일의 경로를, target_string은 삭제하고자 하는 특정 문자열을 의미합니다.

예시

다음은 예시를 통해 함수의 사용법을 보여줍니다.

# 예시 파일 내용
# line 1: Hello, World!
# line 2: This is a sample file.
# line 3: Delete this line.
# line 4: Keep this line.
# line 5: Delete this line too.

# delete_rows_with_string 함수 호출
delete_rows_with_string("example.txt", "Delete")

# 삭제 후 파일 내용
# line 1: Hello, World!
# line 2: This is a sample file.
# line 4: Keep this line.

위 예시에서는 “Delete”라는 문자열이 포함된 행이 삭제되었습니다.

결론

이렇게 Python을 사용하여 파일에서 특정 문자열이 포함된 행을 삭제할 수 있습니다. 이 기능은 대용량 파일 혹은 특정 패턴을 갖는 로그 파일과 같이 원하는 행만 남기고 싶을 때 유용합니다. Python의 파일 조작 기능을 활용하여 효율적으로 작업할 수 있습니다.