<프로그래밍 프리뷰 >
1. 업무 자동화
01. 모든 연락처에 이메일 보내기
파이썬으로 개인 메일을 보낼 수 있다
- 주소록 내보내기 csv 파일 다운로드
- csv 파일을 파이썬으로 갖고 와서 데이터 확인
- 코드 작성
import pandas as pd
import yagmail
from time import sleep
contacts_df = pd.read_csv('./contacts.csv')
yag=yagmail.SMTP{
user="주소작성"
password="비밀번호작성"
}
for index, contact in contacts_df.iterrows():
name= contact['Given Nmae']
email = contact['E-mail 1 - Value']
subject = f'{name}님 수료를 축하드려요!'
body=(f'내용\n')
yag.send{
to=email,
subject=subject,
contents=body
}
print(f'{name}님 전송 완료')
sleep(30) #30초씩 대기
☑️iterrows 객체는 DataFrame의 각 행의 정보를 담은 객체라고 이해하면 된다
☑️판다스(Pandas)는 파이썬 데이터 분석 라이브러리 중 하나로, 데이터 조작, 정제, 분석, 시각화 등을 위한 다양한 기능을 제공
☑️이메일 서비스에서는 수신 정책이라는 게 있다 → 짧은 시간에 메일을 많이 보내면 스팸 계정으로 분리됨 따라서 delay를 사용한다
02. 이력서 300개 폴더로 분류하기
파이썬으로 자동으로 이력서를 분류할 수 있다
import os
from shutil import copy
print(os.listdir('./data')) #폴더 안에 있는 데이터를 살펴본다
for file in os.listdir('./data'):
file, ext= file.split('.') #마침표 기준으로 확장자를 분리
name, position = file.split('__') #언더바 두개를 기준으로 이름이랑 직무를 분리
src =f'./data/{file}.{ext} #data폴더 안에 파일 이름이랑 확장자
dest_path= f'./data/{position}'
if not os.path.exists(dest_path):
os.makedirs(dest_path)#dest_path 라는 폴더가 없으면 makedirs로 만들어준다
dest =f'./data/{position}/{file}.{ext}' #직무폴더 아래에 파일 이름을 둔다
copy(src, dest)
☑️ shutil 모듈은 표준 라이브러리 중 하나로, 파일 및 디렉토리를 조작하는 데 사용할 수 있는 다양한 기능을 제공한다
💡 간단하게 파일 및 디렉토리를 복사, 이동, 이름 변경 등을 할 수 있으며, 파일 압축 및 트리 복사 등의 작업도 수행할 수 있다
03 파이썬 티켓팅 매크로
매크로란? →자주 사용하는 여러 개의 명령어를 묶어서 하나의 키 입력 동작으로 만든 것을 말함
💡selenium → 웹 브라우저를 코드로 조정할 때 쓰는 기술, 그때그때 찾아가면서 활용함
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 10) #페이지가 완전히 이동할 때 까지 기다려야함
# 티켓 예매 페이지
url='티켓예매페이지 주소'
driver.get(url)
data_element= driver.find_element(By.CSS_SELECTOR,'[data-date="2025-08-17 (일)"]')
data_element.click()
time_element= driver.find_element(By.CSS_SELECTOR,'[data-time="19:30"]')
time_element.click()
submit_element= driver.find_element(By.CSS_SELECTOR,'#booking-button')
submit_element.click()
# 로그인 페이지
wait.until(EC.URL_mathces('/login')) # 주소가 login이 될때까지 대기
username_element= driver.find_element(By.CSS_SELECTOR,'#username')
password_element= driver.find_element(By.CSS_SELECTOR,'#password')
username_element.sendkeys('아이디입력')
password_element.sendkeys('비밀번입력')
submit_element= driver.find_element(By.CSS_SELECTOR,'[type="submit"]')
submit_element.click()
# 좌석 선택
wait.until(EC.URL_mathces('/seat')) #주소가 seat가 될때까지 대기
seat_element= driver.find_element(By.CSS_SELECTOR,'[data-seat="r"]')
seat_element.click()
submit_element= driver.find_element(By.CSS_SELECTOR,'#booking-button')
submit_element.click()
# 예매 완료 페이지
sleep(5) #5초 대기
driver.quit()
2. 데이터 사이언스
01. 그래프로 대량 데이터 분석하기
jupyter note book → 데이터 사이언스 분야에서 쓰는 공책
import pandas as pd
import matplotlib.pyplot as plt #그래프를 그리는데 필요함
import seaborn as sns #막대그래
plt.rc('font', famil='AppleGothic')
plt.rcParams['figure.figsize']=(10,5)
jeju_df=pd.read_csv('data.csv') #csv파일을 불러와서 데이터 확인
02.머신러닝으로 손글씨 인식하기
scikit-learn 라이브러리를 사용
from sklearn import datasets
import matplolib.pyplot as plt
digits= datasets.load_digite()
digits.images[1]
#머신러닝에서는 모델을 만든다
from sklearn.model_selection import train_test_split #데이터들을 학습용,테스트용으로 나눈
☑️모델이란 어떤 입력을 받으면 사람처럼 알아서 대답을 내놓는 프로그램, 데이터를 가지고 학습 시켜서 만들어지는 프로그램이다
☑️갖고 있는 데이터 중에서 일부는 모델을 학습시키는데 사용, 나 머지 일부는 학습된 모델을 테스트 하는데 사용
3. 웹 개발
03. 디스코드 ChaptGPT 봇 만들기
봇을 만들기 위해서 개발자 포털에 들어가야 한다
☑️개발자 포털에 들어간 후 bot 설정을 한 다음 discordpy 사이트의 코드를 활용하여 봇을 만든다
파이썬에서 chagpt를 활용하려면 유료버전을 구매해야함
import discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
@client.event
async def on_ready():
print(f'{client.user} 로그인 완료')
@client.event
async def on_message(message):
if message.author == client.user:
return
if message.content.startswith('지피티야'):
await message.channel.send('네?')
client.run('토큰 작성')
'🏃♀️ 대외활동 > Codeit Boost-Node.js' 카테고리의 다른 글
2주차 프로그래밍과 데이터 in JavaScript [코드잇 부스트 백엔드 스터디] (1) | 2024.05.12 |
---|---|
2주차 프로그래밍 핵심 개념 in JavaScript [코드잇 부스터 백엔드 스터디] (2) | 2024.05.12 |
1주차 프로그래밍 언어 이해하기 [코드잇 부스트 백엔드 스터디] (0) | 2024.05.08 |
1주차 프로그래밍 시작하기 in JavaScript [코드잇 부스트 백엔드 스터디] (0) | 2024.05.08 |
1주차 프로그래밍 오버뷰 [코드잇 부스트 백엔드 스터디] (0) | 2024.05.08 |