파이썬 자동화 시나리오

2025. 5. 12. 01:07IT & 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 + 슬랙 메시지 전송

 

 

반응형