Python
[AWS]. S3 Bucket 에서 데이터 다운받기 (with Python)
BackGround 로컬에서 다양한 데이터 및 인공지능 모델들을 사용하다 배포하려고할때. 전부 데이터를 서버에 옮겨야한다. 이런경우 보통 SCP 명령어를 사용하거나 정말 귀찮을때는 그냥 VS code에서 드래그 엔 드롭하는데 용량이 클수록 시간이 오래걸린다. 그래서 이번에 데이터 및 모델을 불러올때 해당 파일이 없을 경우 AWS S3에서 파일을 다운받는 방법을 알아봤다. 한 번 해놓으면 다음부터 옮길일 없음 반복적인 일은 자동화하는게 프로그래머의 자세 What is AWS S3 ? S3는 워낙 유명한 AWS의 스토리지 서비스이다. Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. (라고함...
[Python] .파일 실행시 인자값 전달하기 (argparse)
import argparse Sbert.py if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("--model_name", type=str) parser.add_argument("--batch_size", type=int, default=32) parser.add_argument("--num_epochs", type=int, default=4) parser.add_argument("--eval_steps", type=int, default=100000) parser.add_argument("--gpu_id", type=str, default="0") args = parser.parse_args() confi..
[Python]. multiProcessing 대용량 빅데이터 구간별로 전처리하기
numpy 데이터를 DB 삽입 하려고하다보니 형식이 맞지않아 삽입을 할 수 없는 상황이 생겼다. 그래서 Python의 flaot 형태로 변경해서 삽입하려고 시도했고 numpy 에서 tolist() 함수를 통해 Python float 형태로 변경하면 FP형식이 유지되지않는다. **numpy FP16을 Python으로 변환해도 FP32로 바뀌어서 변환된다. 그래서 numpy 형식을 python float32 형태로 변경하고 그것을 round 함수를 통해 4째자리까지만 잘라내려고한다.(FP16) 총 256차원의 7,000,000만건의 벡터(Vector) 데이터를 전처리해야했고 생각없이 코드를 작성했더니 많은 시간(10분이상)이 소요되었고 중간중간 병목현상이 발생하였다. 이때 개념으로만 알고있던 멀티 프로세싱이..
[Python]. 현재 파일 디렉터리 절대경로 불러오기
from pathlib import Path BASE_DIR = Path(__file__).resolve().parent FILE = os.path.dirname(os.path.realpath(__file__)) BASE_DIR = os.getcwd() from pathlib import Path import os import json BASE_DIR = Path(__file__).resolve().parent.parent DATA_PATH = os.path.join(BASE_DIR,'data','base_datasets.xlsx') MAPPING_PATH = os.path.join(BASE_DIR,'mapping.json') mapping = json.load(open(MAPPING_PATH))
[날짜]. datetime으로 무슨 요일인지 구하기
from datetime import datetime def datetime_to_weekday(datetime_str : str) -> None: """ ex ) datetime_str : "19-02-03" """ date_time = datetime.strptime(datetime_str, '%y-%m-%d') date_type = date_time.date() weekday = date_type.weekday() int_to_week = {0: "월", 1: "화", 2: "수", 3: "목", 4: "금", 5: "토", 6: "일"} print(int_to_week[weekday] + "요일") datetime_to_weekday("2022-04-21")
[교육자료]. 파이썬으로 행맨(Hangman) 게임 구현하기
출처 : https://nadocoding.tistory.com/11 파이썬 행맨 (Hangman) 게임 만들기 즐거운 코딩 시간입니다 ! 이번 개발 주제는 '행맨' 게임이구요. 행맨 게임은 다들 아시겠지만 아주 유명한 단어 퀴즈 프로그램입니다. 어떤 단어가 주어지면 그 단어의 길이만큼 빈 칸(밑줄) 이 nadocoding.tistory.com import random 정답리스트 = ['banana','apple','orange','grape','mango'] 누적입력알파벳 = '' 정답 = random.choice(정답리스트) 남은기회 = len(정답) * 2 while(True): print(f"남은 기회는 {남은기회}번 입니다.") 남은기회 -= 1 if 남은기회
[교육자료]. pyautogui 마우스 제어를 통한 윈도우 자동 종료
개개인 별로 모니터 해상도에 따라 다를 수 있음 import pyautogui import time pyautogui.moveTo(16, 752,1) #시작 아이콘 pyautogui.click() time.sleep(1) pyautogui.moveTo(23, 704,1) pyautogui.click() pyautogui.moveTo(94, 628,1) time.sleep(1) pyautogui.click() pyautogui.click()
[교육자료]. 냥코 대작전 레어 뽑기(가챠) 시뮬레이션 구현
import random 냥코 대전쟁 레어 뽑기 확률 출처 : 냥코 대전쟁 나무위키 # 확률값 정의 rare = 69.4 super_rare = 25 ultra_rare = 5 legend_rare = 0.6 rare_list = ["고양이 홉핑", "고양이 차륜", "고양이 에스테", "고양이 쥬라", "고양이 파이터"] super_list = ["고양이 댄스", "고양이 스시", "오덕 고양이", "고타츠양이", "고양이 사과"] ultra_list = ["고양이 아이스", "고양이 아이스 고스트", "고양이 머신", "도깨비 야옹마", "사람대장 도깨비 야옹마"] legend_list = ["원더 모모코","무사시",'잔다르크', "천성용 바벨","리코더 고양이"] 가챠 뽑기 함수 구현 def ra..
[교육자료]. pyautogui를 통한 자동 연주(feat.Bongo cat)
Bongo cat : https://bongo.cat/ Bongo Cat Bongos Keyboard Meow Cymbal Marimba Tambourine Cowbell LEFT RIGHT MEOW bongo.cat import time import pyautogui as pt 계이름 = { "도" : "1", "레" : "3", "미" : "5", "파" : "6", "솔" : "8", "라" : "0" } 비행기 = "미레도레미미미 레레레미미미 미레도레미미미 레레미레도" 나비야 = "솔미미 파레레 도레미파솔솔솔 솔미미미 파레레 도미솔솔 미미미 레레레레 레미파 미미미미 미파솔 솔미미 파레레 도미솔솔 미미미" for i in 나비야: if i == " ": time.sleep(0.2) else: pt...
[교육자료]. 클래스 학습( 용사로 드래곤 사냥하기 )
클래스 정의 import random class 드래곤: def __init__(self): self.체력 = 10000 self.공격력 = 20 def 기본공격(self): return self.공격력 def 피격(self,피격데미지): self.체력 -= 피격데미지 class 용사: def __init__(self,체력,공격력): self.체력 = 체력 self.공격력 = 공격력 self.치명타_확률 = 10 self.치명타_효과 = 2 def 기본공격(self): 확률값 = round(random.random() * 100 , 1) if(확률값 < self.치명타_확률): print("치명타!") return self.공격력 * self.치명타_효과 else: return self.공격력 def 피..