728x90
반응형
예제 : 영화자막 파일에서 대사만 남긴 것을 txt 파일로 저장하고 실행 시마다 파일 이름을 새로 지정하기
import re
#datetime 모듈에서 datetime 클래스 가져옴
from datetime import datetime
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()
# 현재 날짜와 시간을 이용하여 파일 이름 생성
current = datetime.now()
# strftime은 String Format Time, 날짜와 시간을 문자열로 변환하는 메서드
format = current.strftime("%Y-%m-%d_%H-%M-%S")
#동적으로 파일 이름 생성, f는 {format} 부분이 f-string 처리 되어 해당 변수의 값이 문자열 안에 삽입 되도록
filename = f"output_{format}.txt"
# 사용 예시
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 open(filename, 'w') as file:
file.write(result)
# 텍스트 파일에 저장한 결과를 출력
print(f"결과가 '{filename}' 파일에 저장되었습니다.")
728x90
반응형
'코딩 수업 > 파이썬' 카테고리의 다른 글
[파이썬] 미드 쉐도잉 대본 만드는 프로그램 : 자막 파일에서 대사만 남기고 txt 파일로 저장하기 (업무 자동화) (0) | 2024.01.29 |
---|---|
[파이썬] 영화 자막에서 대사만 남긴 결과값을 txt 파일로 저장하기 (0) | 2024.01.29 |
[파이썬] 자막 파일에서 대사만 남기기 예제 Python Example : Extracting Only Dialogue from Subtitle Files (1) | 2024.01.28 |
[파이썬] 특정 글에서 특정 기호 제거하기 (정규표현식, sub, strip) (0) | 2024.01.28 |
[파이썬] 특정 패턴 가진 문자열 제거 (정규표현식, re, pattern, compile, sub) (1) | 2024.01.28 |