python(0821-0908)17 깃허브 블로그 Mac에서 Ruby의 패키지 매니저인 gem을 통해 설치를 진행하다 다음과 같은 에러를 만납니다. $ gem install bundler ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory. 결론부터 말하면, 시스템 ruby를 이용하고 있기 때문에 권한이 없어 gem 설치가 안된 것입니다. sudo를 통해 root 권한으로 실행하면 설치가 가능하지만, 보안상 이유로 권장하지 않는 설치법입니다. 그래서 rbenv를 통해 문제를 해결해보겠습니다. 문제 해결 먼저 brew를 통해 rbenv 를 설치합니다. brew updat.. python(0821-0908)/메모 2023. 4. 8. 코랩 : 셀레니움, 구글 드라이브 파일 저장 코랩엔 우분투 도커가 들어있었어... 공짜로 리눅스를 주네. -_- 우분투 18.04 코랩 파일 다루기 (구글 드라이브에서) # /content/drive/My Drive/Colab Notebooks/ f = open("/content/drive/My Drive/Colab Notebooks/voca_db.txt", 'w', encoding="utf8") f.write("ㅇㅇㅇ') f.close() 코랩에서 셀레니움 크롬드라이버 #!pip uninstall selenium #!pip install selenium==3.141 #!apt-get update #!apt autoremove !pip install selenium !apt install chromium-chromedriver chrome_opti.. python(0821-0908)/메모 2022. 9. 8. 초보코딩 pillow : 이미지 다루기 (흑백처리, 모자이크, 도트) 초보코딩 실습 나도코딩 GUI 실습 후, 관련 예제를 찾아봤다. Pillow Image 실습. 딱이야! 1. 이미지 grey 흑백으로 바꾸기 투명 png 갖다 썼다가 안돼서 헤맸었다. convert('RGB') 필요 r.size 로 이미지의 크기 (전체 픽셀수) 구하고, r.getpixel( i, j ) r.putpixel((i,j), ( , , , ) from PIL import Image import matplotlib.pylab as plt import os # 이미지 흑백으로 바꾸기: rgb평균값으로 동일하게 putpixel im = Image.open("pica2.jpg") r = im.convert('RGB') # plt.imshow(r) # r을 plotting(가시화)한다. # plt.sh.. python(0821-0908)/메모 2022. 9. 7. 학습 리뷰 7월 파이썬 장고 재도전 유튜브 베프 웹 따라하기(약 2주) 아무리 적응하려해도, 유튜브 콸이 너무 낮아서 ㅠㅠ 빠르게 훑어보는 역할. ( 아주 초심자 또는 초급 이상자) 에 맞는 것 같다. 즉, 이걸 레퍼런스 삼아서 회독하고, 보강하기엔 취지에 안맞는 책. Doit장고, 파이썬 웹프로그래밍(기본/심화편) : 약 2주 --- 결국 다 실패. Doit 장고 : 설명도 자세하고 좋으나, 많은 내용을 다루다보니, 그 스피드감으로 뒷 부분에서 좌절. 클래스형뷰 커스터마이징 위주여서, 어느 순간 내가 뭐하는건지...멘탈붕괴 파이썬 웹프로그래밍(기본/심화편) : 이걸 뭐라해야할지 모르겠다. 강의교재 정도로는 적합. 문체가 너무 답답하다.... ㅠ 장고걸 튜토리얼 따라하기. 방향이 계속 안잡혀서, 오래된 웹문서지만,.. python(0821-0908)/메모 2022. 9. 7. GUI 4. 보너스. 캡처 keyboard, ImageGrab.grab() 이렇게 간단히 캡쳐 프로그램을 만드네.. 흠. 단축키 설정과 비슷한 레벨이네. import time import keyboard from PIL import ImageGrab def screenshot(): # 2020년 6월 1일 10시 20분 30초 -> _20200601_102030 curr_time = time.strftime("_%Y%m%d_%H%M%S") img = ImageGrab.grab() img.save("image{}.png".format(curr_time)) # ex) image_20200601_102030.png keyboard.add_hotkey("F9", screenshot) # 사용자가 F9 키를 누르면 스크린 샷 저장 #keyboard.add_hotkey("a", scree.. python(0821-0908)/활용2. GUI(0903-0906) 2022. 9. 6. GUI 3. image_merge 전체코드 학습 리뷰 처음 html 이라고 무시하던 것들이 학습을 "매우" 더디게 했다. 좀 빠르게 맥락을 파악했으면 좋았으련만... 기초 컨트롤 박스들과 결합이 핵심적이였다. import os import tkinter.ttk as ttk import tkinter.messagebox as msgbox from tkinter import * # __all__ from tkinter import filedialog from PIL import Image root = Tk() root.title("Nado GUI") # 파일 추가 def add_file(): files = filedialog.askopenfilenames(title="이미지 파일을 선택하세요", \ filetypes=(("PNG 파일", "*.png.. python(0821-0908)/활용2. GUI(0903-0906) 2022. 9. 6. 리스트 insert,append // pop, del, remove // a.count(1), len(a) insert() : 추가, 수정 둘 다 가능 append() : 끝에 추가하기 pop() del[] : 요소 index로 삭제. 슬라이싱 삭제 remove() --> value 중 20 을 삭제. a.remove(20) a.index(3) --> 3의 index 값은? a.count(1) ---> 1 이 몇 개? len(a) -----> 리스트a 의 요소 수는? ---> 반복문 실행시, 몇 번해야하는지 확인 a[2] = 4 >>> a = [1, 2, 3] >>> a[2] = 4 >>> a [1, 2, 4] del 은 특이하게 명령어 모양 >>> a = [1, 2, 3] >>> del a[1] >>> a [1, 3] del a[2:] >>> a = [1, 2, 3, 4, 5] >>> del a[2:] >>.. python(0821-0908)/메모 2022. 9. 5. 2. GUI 활용 예제 : 이미지 합치기 기초 인터페이스 익히는 부분이 역시 가장 지겨웠다. ㅠ html, css 같은거라서 이해하긴 쉽지만, 알아야 하는... 이번 예제는 간단한 예제면서도, 개인 프로그램 용도로는 웬만한건 다 할 수 있을만한 예제같다. 파일 선택 : filedialog.askopenfilenames(title="", filetypes=(튜플), initialdir=r"" ** title 유의. (text 아님 ) 선택한 파일을 list_file=Listbox() 에 추가 list_file.insert(END, file) 선택 삭제 del_file(): def del_file(): # Listbox요소삭제: list_file.delete(요소번호) msgbox.showwarning import tkinter.ttk as ttk.. python(0821-0908)/활용2. GUI(0903-0906) 2022. 9. 5. 2.GUI : tkinter 익히기 간단한 프로그램 만드는 사람들 참 부러웠는데, 어찌됐건 이제야 해본다. 생각해보니, 웹이 어려운거였다. 신경쓸게 참 많았으니까. 따라해보는데, 왜 이리도 진도가 안나가고 흥미가 안느껴질까.... 하.... 어려워서가 그런게 아니라, 기초가 지루하니까, 겨우 30분 1시간 기초과정을 익힐 때 ...왜 그럴까나. 기초라서 이해면에서 쉽다고 생각해서, 멍때리고 보니까 고질병인것 같다. 영상강의와 교재를 통한 강의의 가장 큰 차이가 이 부분인 듯 하다. 먼저 개괄적으로 본 다음 무엇을 배우는지, 어떤 문법 특징을 말하려는지 한번 살피고, 들어가면 더 좋을 듯 한데. 1. 기본세팅(create_frame) root = Tk() root.title("나도코딩") root.geometry("640x480+900+10.. python(0821-0908)/활용2. GUI(0903-0906) 2022. 9. 3. 게임 3 활용 : 팡팡 매우 복잡하진 않지만, 초심자에겐 다중 리스트, 딕셔너리형 리스트, x축 y축의 방향 고려한 위치정보로 상당히 헷갈렸다. 한 줄 for 문. 리스트 요소 삽입, 삭제 등. 음 파이썬 문법을 익히기 위해서는 매우 좋은 예제 같다. 코드가 능숙해진 상태라면, 상당히 재밌는 예제. 초등학생은 어렵겠고, 중-고등 때 물리 속력, 속도가 컴퓨터에서 이렇게 쓰일 수 있구나 하며 감탄했다. 속도하면, 일상적으로 시간 당 킬로의 단순 계산이나, 왼쪽에서 오른쪽의 방향으로만 생각하는데, x 축이 뒤바뀐 상태의 속도, 특히, y 축이 거꾸로 된 속도 개념에서 처음에 헤맸다. -_-;; 이렇게 쉬운걸. 단순하지만, 한번 그 틀을 벗어날 때가 가장 힘든 것 같다. 우리가 언젠가 처음 - 음수를 접할 때 처럼. 딸내미 코딩 배.. python(0821-0908)/활용1 게임(0830-0902-) 2022. 9. 1. 게임 2 quiz 똥피하기 기본 뼈대를 펼쳐놓고, 만들기 1. frame 뼈대 만들기 screen = pygame.display.set_mode((screen_width, screen_height)) # 화면타이틀 : pygame.display.set_caption("나도게임") # 이벤트루프 running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False #종료 pygame.quit() 2. 백그라운드 이미지 -> blit 1. background = pygame.image.load("경로") #이벤트루프 안에서, 배경 그리기. blit, 튜플로 좌표, display.update() 2. screen.. python(0821-0908)/활용1 게임(0830-0902-) 2022. 8. 31. 게임 1 기초 약 3시간 강의 파트 1 : 기초 학습 ( 약 70분 강의 ) 파트 2 : Quiz 똥 피하기 약 15분 파트 3 : 팡팡 만들기 90분 게임은 쓸모가 없을 것 같아서 실습 안하려다, 초딩 아이 흥미를 끌어볼 수 있지 않을까 하여... 아빠의 마음으로 +_+ 소스 미리 프린트 하기: 약 20분 학습 진도가 너무 더뎌서, 챕터별로 한번 눈으로 보기 : 약 2시간+ 대략적인 강의 뼈대를 정리 : 1시간 직접 코딩하가 : 2시간~3시간 파이게임 기본 뼈대 import pygame ############################################################## # 기본 초기화 (반드시 해야 하는 것들) pygame.init() # 화면 크기 설정 screen_width = 480.. python(0821-0908)/활용1 게임(0830-0902-) 2022. 8. 31. urlopen 과 requests.get : 벅스 순위 개기초 urllib.reqeust 의 urlopen 사용 url2 = urlopen(URL) url3 = url2.read() requests 사용 url2 = requests.get(URL) url3 = url2.text from urllib.request import urlopen from bs4 import BeautifulSoup url ="https://music.bugs.co.kr/chart?wl_ref=M_left_02_01%22" url2 = urlopen(url) url3 = url2.read() print(url2) print(len(url3)) import requests from bs4 import BeautifulSoup url ="https://music.bugs.co.kr/ch.. python(0821-0908)/메모 2022. 8. 27. [공브로]2. 마우스/키보드 조작 : pyautogui 공브로 유튜브 학습 Anaconda Prompt 를 관리자 권한으로 실행 후, 설치 conda install -c conda-forge pyautogui 주피터 노트북 환경 # 마우스 pag.position() pag.size() 화면 크기 pag.move(300,100, duration=1) 현재 위치에서 x, y 만큼 이동 pag.moveTo(0,0, duration=0.1) 특정 위치로 이동 pag.click() pag.click(button='right') # 키보드 : write는 일반 문자 입력, press 는 제어문자 pag.write('I Like Python', interval=0.2) Cell->Run cells and Insert Bellow 로 실행 pag.press('enter').. python(0821-0908)/공브로(0821-0824) 2022. 8. 25. [공브로] 파일조작 : os, glob, shutil 공브로 유튜브 학습 1. 파일 조작 기초 # os 파일, 폴더 조작 os.getcwd() os.mkdir('폴더') os.listdir() os.rmdir('폴더') # 파일 생성 fname = '파일'+'.txt' f = open(fname, 'w') f.close() # 폴더,파일 조회 : glob.glob('파일*txt') # 파일 이동 : shutil.move(파일, '.\\폴더\\') 2. 기본 : 파일,폴더 만들고, 폴더로 이동시키기 import os import shutil # 현재 위치 Current Working Directory cwd = os.getcwd() print("getcwd ::::::: " + cwd) # 폴더 만들고, 지우기 os.mkdir('폴더') os.rmdir('폴.. python(0821-0908)/공브로(0821-0824) 2022. 8. 24. 아나콘다 path 설정, conda create -n test python=3.8 anaconda3 anaconda3\Library anaconda3\Scripts 아나콘다로 가상환경 목록 불러오기 conda env list or conda info -env 가상환경 만들기 --가상환경만 생성시 conda create -n [name] --가상환경 생성과 동시에 python 버전 설정시 conda create -n [name] python=[version] ex) conda create -n test python=3.8 가상환경 접근 및 나오기 conda activate [name] ex) conda activate test conda deactivate --현재 들어와있는 가상환경을 나와 base로 돌아간다. 가상환경 삭제하기 conda remove -n [가상환경명] or cond.. python(0821-0908)/공브로(0821-0824) 2022. 8. 24. 2. ip 조회 : socket, requests, re 정규표현식 import socket import requests import re in_addr = socket.socket(socket.AF_INET, socket.SOCK_STREAM) in_addr.connect(("www.google.co.kr", 443)) print("내부IP: ",in_addr.getsockname()[0]) req = requests.get("http://ipconfig.kr") out_addr = re.search(r'추출할문자', req.text)[1] # 추출할문자 : IP Address : (\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) # r' ' : raw string 백슬래시 문자를 해석하지 않는다. # \d 가 1~3번 있어야하고, # \. 은 있어야함.. python(0821-0908)/공브로(0821-0824) 2022. 8. 23. 이전 1 다음