파이썬 자동화 시나리오
2025. 5. 12. 01:07ㆍIT & Programming/python
1. GUI 자동 다운로드 앱 (Tkinter 기반)
목적
- URL을 입력하면 지정 폴더에 파일을 다운로드
- 버튼 클릭만으로 실행되는 간단한 사용자 인터페이스 제공
사용 모듈
- tkinter: GUI 생성
- requests: 파일 다운로드
- os, pathlib: 경로 관리
코드 예시
import tkinter as tk
from tkinter import filedialog
import requests
from pathlib import Path
def download_file():
url = url_entry.get()
folder = filedialog.askdirectory()
if not url or not folder:
result_label.config(text="URL과 폴더를 입력하세요.")
return
filename = url.split("/")[-1]
filepath = Path(folder) / filename
try:
response = requests.get(url)
filepath.write_bytes(response.content)
result_label.config(text=f"저장 완료: {filepath.name}")
except Exception as e:
result_label.config(text=f"오류 발생: {e}")
root = tk.Tk()
root.title("파일 자동 다운로드 앱")
tk.Label(root, text="다운로드할 파일 URL:").pack()
url_entry = tk.Entry(root, width=50)
url_entry.pack()
tk.Button(root, text="파일 다운로드", command=download_file).pack()
result_label = tk.Label(root, text="")
result_label.pack()
root.mainloop()
2. 메일 첨부파일 자동 저장 (IMAP + email 모듈)
목적
- 메일 서버에서 특정 조건(예: 제목, 보낸이 등)에 해당하는 메일 검색
- 첨부파일을 자동으로 로컬에 저장
사용 모듈
- imaplib: 메일 서버 접속
- email: 메일 파싱
- os, pathlib: 파일 저장
코드 예시 (Gmail 기준)
import imaplib
import email
from email.header import decode_header
import os
IMAP_SERVER = "imap.gmail.com"
EMAIL = "your_email@gmail.com"
PASSWORD = "your_app_password"
def save_attachments():
mail = imaplib.IMAP4_SSL(IMAP_SERVER)
mail.login(EMAIL, PASSWORD)
mail.select("inbox")
result, data = mail.search(None, 'ALL')
for num in data[0].split():
result, msg_data = mail.fetch(num, '(RFC822)')
msg = email.message_from_bytes(msg_data[0][1])
for part in msg.walk():
if part.get_content_disposition() == "attachment":
filename = part.get_filename()
if filename:
with open(filename, "wb") as f:
f.write(part.get_payload(decode=True))
mail.logout()
주의: Gmail 사용 시 앱 비밀번호 설정 필요
3. 슬랙(Slack)으로 알림 전송 자동화
목적
- 작업 결과, 다운로드 완료, 오류 알림 등을 슬랙으로 전송
- 팀원과 실시간 협업 가능
사용 도구
- Slack Webhook URL
- requests 모듈
코드 예시
import requests
def send_slack_message(message, webhook_url):
payload = {"text": message}
response = requests.post(webhook_url, json=payload)
if response.status_code == 200:
print("슬랙 전송 완료")
else:
print("전송 실패:", response.text)
# 사용 예
webhook = "https://hooks.slack.com/services/슬랙_웹훅_URL"
send_slack_message("📂 파일 다운로드 완료", webhook)
응용 시나리오 조합 예시
시나리오 구현 조합
다운로드 후 슬랙 알림 | requests + slack_webhook |
첨부파일 저장 후 자동 처리 | imaplib + os + 자동화된 분석 스크립트 |
매일 정해진 URL에서 자동 저장 | schedule + requests + slack 알림 |
GUI 앱으로 이미지 다운 + Slack | tkinter + requests + 슬랙 메시지 전송 |
반응형
'IT & Programming > python' 카테고리의 다른 글
파이썬의 집합과 사전에 대해 (0) | 2025.05.12 |
---|---|
파이썬 웹드라이버 최신상태 유지방법 (1) | 2025.05.12 |
파이썬 인터넷상에 있는 파일 크롤링 수집 자동화에 대해 (0) | 2025.05.12 |
python file modules 파이썬에서 파일 처리 (0) | 2025.05.12 |
파이썬 리스트와 인덱스 (0) | 2025.05.10 |