서론
회사에서 업무를 하고 있는데,
일부 업무들은 확실히 자동화를 할 수 있을 것 같았다.
여러 거래 건들이 실패가 됐다는 알람메일이 자동으로 오는데,
양도 너무 많고 대부분이 제대로 읽을 필요도 없는 메일들이다.
일하고 있는 여러 직원들도 메일함을 보면 10000개씩 쌓여있다.
그래서 이런 것들도 자동화를 하기 위해 프로그램을 만들어보기로 했다.
파이썬으로 윈도우 프로그램을 만들 것이고, 이름은 Danal Assistant.
여러 모듈을 붙여서 만들 수 있도록 하겠지만,
1차적인 목표는
- 키워드 설정 아웃룩 메일 알람
- 한 두시간마다 스트레칭 알람
이다.
자 그럼 개발 시작!
I. pystray
파이썬으로 시스템 트레이에 아이콘을 띄워주는 라이브러리이다.
정보가 정말 없어서 찾기 힘들었지만,
원본 소스코드 깃허브 readme에 바로 사용가능 하도록 여러 코드가 올라와있는 것을 발견했다.
from pystray import MenuItem as item
import pystray
from PIL import Image
def action():
pass
image = Image.open("image.jpg")
menu = (item('name', action), item('name', action))
icon = pystray.Icon("name", image, "title", menu)
icon.run()
1. 아이콘 이미지 만들기:
이렇게 하면 py파일과 같은 경로에 있는 image.jpg 파일이
PIL 라이브러리를 통해 아이콘처럼 작은 이미지로 만들어진다.
2. 메뉴 객체 만들기
'menu' 라는 객체 괄호 안에 'MenuItem'을 만든다.
이렇게 2개의 'MenuItem'을 만들면,
윈도우 기준 아이콘을 우클릭하면 나타나는 메뉴,
'menu' 객체에 'name' 이름을 가진 메뉴아이템 객체가 나타난다.
3. 아이콘 객체 최종완성
icon 이 최종적인 시스템 트레이에 표시되는 아이콘이 된다.
II. tkinter
from tkinter import *
root = Tk()
root.mainloop()
정말 간단하다.
하지만 이 둘을 가용하려면 별도의 쓰레딩 작업이 필요하다.
- pystray 는 icon.run()
- tkinter는 mainloop()
을 하면 그 자리에서 코드가 순차실행중 그 자리에서 멈추기 때문에
메뉴에서 함수를 호출하거나 쓰레드 선언하고 실행하는 등
별도의 작업이 필요하다.
이 글로 시작을 알리고, 이후의 포스팅에서 각각 라이브러리에 대해 더 상세히 다뤄보겠다.
'개발 > Python & Flask' 카테고리의 다른 글
코딩테스트 다시 준비 시작 - 탐욕법 (ft. 파이썬) (0) | 2022.02.03 |
---|---|
코딩테스트 다시 준비 시작 ft. 파이썬 (0) | 2022.01.28 |
[Python] URI쿼리 인코딩여부 판별 프로그램 (0) | 2021.01.12 |
[Python] Outlook 메일 자동 읽어오기 (0) | 2021.01.11 |
Python logging 에 원하는 값 찍기 (inject variable to logging) (0) | 2020.11.13 |