반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- ppt) 파일 #오피스(워드
- 프랑스) #오랑주리 미술관(파리
- 이탈리아) #오르세 미술관(파리
- 프랑스)#내셔널 갤러리(런던
- #다산 정약용 #유배지에서 보낸 편지 #도덕 #용기 #염 #주역 #호연지기 #효제 #근검
- # 그리스 신화 # 로마 신화 #카오스 #가이아 #우라노스 #크로노스 #제우스 #헤라 #포세이돈 #하데스 #데메테르 #아테나 #아폴론 # 아르테미스 #헤르메스 #헤파이스토스 #계보 #그리스 로마 신화 영어 어원
- 오블완
- # 암호(비밀번호) 분실 # 암호(비밀번호) 찾기 #오피스(doc
- 엑셀
- 스페인) #르네상스·바로크 조각 미술관(보르게세
- 프랑스) #바티칸 박물관(로마
- #스탕달 신드롬 #유럽 미술관 #우피치 미술관(피렌체
- xls
- 로마) #반 고흐 미술관(암스테르담
- 문서 파일 #사진 정리 #포렌식 # 출판
- #평판관리 #좋은평가받는법 #관계심리학 #인간관계팁 #신뢰쌓기 #진심의힘
- #유럽 미술관 #오랑주리 미술관 #산 마르코 미술관# 로댕 미술관 #브레라 미술관 #샤갈 미술관 #오페라 가르니에 #귀스타브 모로 미술관 #아카데미아 갤러리 #우피치 미술관#바르베리니 궁전 #코톨드 갤러리 #스탕달 신드롬
- 이탈리아) #루브르 박물관(파리
- 파워포인트) #집(zip)파일 #아래한글(HWP) #brute-force(무차별 대입)
- #악어 #카피바라 #설치류 #카이만 #네셔널지오그래픽 #IUCNCSG.ORG
- 간단한 Word 자동화 프로그램 #다산 정약용 # 유배지에서 보낸 편지 #유니코드 이스케이프
- #데일카네기 인간관계론 (고전 필독서) #인간관계론 (도서명) #인간관계개선 (가장 핵심적인 목적) #대화의기술 (실질적인 활용법) #인간관계꿀팁 (정보성) #직장생활팁 (실용성) #자기계발서 (카테고리)
- 네덜란드) #샤갈 미술관(니스
- 영국) #프라도 미술관(마드리드
- #파이썬 #번역 프로그램 #async await #동기 비동기 #coroutine #googletrans #translator
- #ExifTool # 메타데이터 metadata #meta information #사진
- 티스토리챌린지
- #자기계발 #자기성장 #자기관리 #긍정적인삶 #마인드셋 #심리학에세이 #삶의태도
- #선진국 대한민국 #선진국 #대한민국 #아이들 #청소년 #고민 #해결 #심리
- 언론 #백업 backup #세계적으로 가장 강력한 툴
Archives
- Today
- Total
아톨러브
간단한 번역 프로그램, 파일로 저장하기 본문
반응형
아주 간단합니다. 다만, googletrans의 최신 버전은 내부적으로 비동기 함수를 사용하기 때문에, translator.translate() 호출 시 await를 사용하지 않으면 coroutine 객체가 반환됩니다. 그러므로, await 문법을 사용하지 않는 googletrans의 구버전(4.0.0-rc1)을 설치하여 번역 프로그램을 만들수도 있습니다.
1단계: async와 await 사용
비동기 방식을 사용하기 위해, asyncio 라이브러리를 사용하여 코드를 비동기적으로 실행해야 합니다.
import googletrans
import asyncio # asyncio 라이브러리 추가
async def main():
"""
비동기 방식으로 번역을 실행하는 메인 함수
"""
translator = googletrans.Translator()
str_1 = "오늘은 가을비가 내리는 아침입니다."
# translate 함수가 비동기 함수이므로, await를 사용해 결과를 기다립니다.
result_1 = await translator.translate(str_1, dest="en", src="auto")
print(f"오늘은 가을비가 내리는 아침입니다. -> {result_1.text}")
str_2 = "I am so happy."
# 마찬가지로 await를 사용합니다.
result_2 = await translator.translate(str_2, dest="ko", src="auto")
print(f"I am so happy => {result_2.text}")
if __name__ == "__main__":
# asyncio.run()을 사용하여 비동기 함수인 main()을 실행합니다.
asyncio.run(main())
- import asyncio: Python의 비동기 프로그래밍을 위한 핵심 라이브러리입니다.
- async def main():: async 키워드는 이 함수가 비동기 함수임을 명시합니다.
- await translator.translate(): await 키워드는 translate() 함수가 작업을 완료할 때까지 기다리라고 지시합니다. 이 과정에서 다른 작업을 동시에 처리할 수 있어 효율적입니다.
- asyncio.run(main()): asyncio.run() 함수는 비동기 프로그램을 시작하는 진입점 역할을 합니다. 이 함수를 통해 main() 함수가 실행되고, await로 표시된 모든 비동기 작업이 완료될 때까지 기다립니다.
2단계: 영문 문서를 번역해서, 한글 문서에 저장하기
import googletrans
import asyncio
from os import linesep
async def main():
translator = googletrans.Translator()
read_file_path = "원문(영문).txt"
write_file_path = "원문번역(한글).txt"
with open(read_file_path, "r") as f:
read_lines = f.readlines()
for lines in read_lines:
result = await translator.translate(lines, dest="ko", src="en")
print(result.text)
with open(write_file_path, "a", encoding="utf-8") as f:
f.write(result.text + "\n")
if __name__ == "__main__":
asyncio.run(main())
[ 참조 ] coroutine
coroutine은 파이썬에서 비동기(asynchronous) 프로그래밍을 가능하게 하는 특별한 함수입니다. 일반 함수와 달리, 실행 중에 잠시 멈췄다가 나중에 다시 이어서 실행될 수 있는 특징을 가지고 있습니다.

가. coroutine의 핵심 개념
일반 함수가 시작부터 끝까지 한 번에 실행되는 반면, coroutine은 await 키워드를 만나면 실행을 잠시 중단하고 제어권을 다른 coroutine에게 넘겨줍니다. 그리고 await 대상 작업(예: 네트워크 요청, 파일 읽기 등)이 완료되면 다시 실행을 재개합니다.
이러한 특성 덕분에 하나의 프로그램이 여러 작업을 동시에 처리하는 것처럼 보이게 만들 수 있습니다.
나. coroutine이 필요한 이유
예를 들어, 웹사이트 100개에서 정보를 가져오는 프로그램을 만든다고 가정해 봅시다.
- 동기식(Synchronous):
- 1번 웹사이트 요청 → 응답을 기다림 (10초 소요)
- 2번 웹사이트 요청 → 응답을 기다림 (10초 소요)
- ...
- 총 1000초가 걸립니다.
- 비동기식(Asynchronous) - Coroutine 활용:
- 1번 웹사이트 요청 → await
- 2번 웹사이트 요청 → await
- 3번 웹사이트 요청 → await
- ...
- 100개의 요청을 동시에 보낸 뒤, 응답이 오는 대로 결과를 처리합니다. 가장 오래 걸리는 요청 시간만큼의 시간이 소요되어 전체 작업 시간이 획기적으로 줄어듭니다.
Coroutine은 이런 I/O 작업(Input/Output)이 많은 프로그램에서 빛을 발합니다. 컴퓨터가 데이터를 기다리는 동안 다른 작업을 처리하도록 만들어 효율성을 극대화합니다.
반응형
'AI, 클라우드, 문서, 자동화 > 파이썬 요리조리' 카테고리의 다른 글
| 간단한 Word 자동화 프로그램, 다산 정약용의 유배지에서 보낸 편지 (0) | 2025.09.05 |
|---|---|
| 당황하지 말자, 기억나지 않는 문서 암호/비밀번호 찾기(2) (0) | 2025.08.22 |
| 당황하지 말자, 기억나지 않는 문서 암호/비밀번호 찾기(1) (0) | 2025.08.22 |
| 내부 IP & 외부 IP 조회(함수, 클래스까지 정리) (0) | 2025.08.21 |