실용적인 알고리즘

[파이썬, RPA] - RPA 단계 별 예시 코드 구현

hminor 2024. 7. 21. 17:02

1. 기본 자동화

기본 자동화는 단순하고 반복적인 작업을 자동화.

# 엑셀 파일에서 데이터를 읽고 다른 파일에 복사하는 작업을 자동화 하는 코드

import openpyxl

# 엑셀 파일 열기
workbook = openpyxl.load_workbook('input.xlsx')
sheet = workbook.active

# 데이터를 읽어서 새로운 파일에 쓰기
new_workbook = openpyxl.Workbook()
new_sheet = new_workbook.active

for row in sheet.iter_rows(values_only=True):
    new_sheet.append(row)

new_workbook.save('output.xlsx')
# 웹 페이지에서 특정 데이터를 추출해서 CSV 파일로 저장하는 자동화 코드

import requests
from bs4 import BeautifulSoup
import csv

# 웹 페이지에서 데이터 추출
url = 'https://example.com/products'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

products = []
for item in soup.select('.product-item'):
    name = item.select_one('.product-name').text
    price = item.select_one('.product-price').text
    products.append([name, price])

# CSV 파일에 데이터 저장
with open('products.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['Name', 'Price'])
    writer.writerows(products)

2. 지능 자동화

기본 자동화에 더해 규칙 기반의 의사 결정을 포함.

# 이메일을 읽고 특정 키워드가 포함된 이메일만 처리하는 자동화 코드

import imaplib
import email

# 이메일 서버에 연결
mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('your-email@gmail.com', 'your-password')
mail.select('inbox')

# 이메일 검색
result, data = mail.search(None, 'ALL')
email_ids = data[0].split()

for email_id in email_ids:
    result, data = mail.fetch(email_id, '(RFC822)')
    raw_email = data[0][1]
    msg = email.message_from_bytes(raw_email)
    
    # 제목에 특정 키워드가 있는지 확인
    if '키워드' in msg['Subject']:
        print(f"Processing email: {msg['Subject']}")

mail.logout()
# 금융 거래 내역을 자동으로 분류하고 특정 조건에 맞는 거래를 별도로 처리하는 자동화 코드

import pandas as pd

# 거래 내역 데이터 불러오기
df = pd.read_csv('transactions.csv')

# 특정 조건에 맞는 거래 필터링
large_transactions = df[df['Amount'] > 1000]

# 필터링된 거래 내역 저장
large_transactions.to_csv('large_transactions.csv', index=False)

3. 인지 자동화

머신 러닝과 자연어 처리(NLP) 기술을 사용해서 복잡한 의사 결정과 예측을 수행하는 단계.

# 고객 리뷰를 분석하여 긍정적 또는 부정적 감정을 분류하는 자동화 코드

from transformers import pipeline

# 감정 분석 모델 로드
sentiment_analysis = pipeline('sentiment-analysis')

# 예제 리뷰
reviews = [
    "I love this product! It works great.",
    "This is the worst purchase I've ever made.",
    "The quality is okay, but could be better."
]

# 감정 분석 수행
for review in reviews:
    result = sentiment_analysis(review)[0]
    print(f"Review: {review}\nSentiment: {result['label']} (Score: {result['score']})\n")
# 챗봇을 사용하여 고객 질문에 대한 응답을 자동으로 생성하는 자동화 코드

from transformers import pipeline

# 챗봇 모델 로드
chatbot = pipeline('conversational')

# 예제 대화
conversations = [
    {"role": "user", "content": "What is the weather like today?"},
    {"role": "user", "content": "Can you help me with my order?"},
    {"role": "user", "content": "Tell me a joke."}
]

# 응답 생성
for conv in conversations:
    response = chatbot(conv['content'])
    print(f"User: {conv['content']}")
    print(f"Bot: {response[0]['generated_text']}\n")