본문 바로가기
코딩 수업/파이썬

[파이썬] 영화 자막에서 대사만 남긴 결과값을 txt 파일로 저장하기

by Jade S. 2024. 1. 29.
728x90
반응형
예제 : 영화 자막 파일에서 대사만 정리한 결과값을 txt 파일로 저장하기

 

 

import re

def subtitle(input):
    # 시간 정보를 가지고 있는 행을 제거
    time = re.compile(r'\d+\n\d{2}:\d{2}:\d{2},\d{3} --> \d{2}:\d{2}:\d{2},\d{3}')
    result_text = re.sub(time, '', input)

    # <i> 태그와 하이픈(-) 제거
    result_text = re.sub(r'<\/?i>|-', '', result_text)

    # 여러 개의 연속된 빈 줄을 하나의 빈 줄로 대체
    result_text = re.sub(r'\n\s*\n', '\n\n', result_text)

    return result_text.strip()

# 사용 예시
ori = """
4
00:00:09,449 --> 00:00:11,836
<i>Dr. Eugene Porter
is a scientist,</i>

5
00:00:12,025 --> 00:00:14,556
and he knows exactly
what caused this mess.

6
00:00:18,329 --> 00:00:20,704
<i>We'll find another vehicle.
We'll go with them until we do.</i>

7
00:00:22,156 --> 00:00:23,894
<i>- What do you think?
- Let's go.</i>
"""

result = subtitle(ori)

# 결과를 텍스트 파일에 저장 (현재 작업 디렉토리에 저장)
# with 문을 사용하여 'output.txt' 파일을 열고 쓰기 모드('w')로 열어서 처리된 결과를 파일에 저장
 
with open('output.txt', 'w') as file:
    file.write(result)

# 텍스트 파일에 저장한 결과를 출력
# f는 f-string이라는 문자열 포매팅 방법의 표시
print(f"결과가 '{file.name}' 파일에 저장되었습니다.")

 

728x90
반응형