Programming/python 12

matplotlib에서 show() 할 때 빈 화면 해결

import matplotlib.pyplot as plt에서 그래프를 실컷 그리고plt.show()로 출력을 하면 다음과 같이 빈 화면이 떠버린다(...)그냥 실행하면 잘 나오는데, 꼭 파이썬 가상환경 내에서 실행하면 저렇게 나와버린다...모든 모듈을 로컬에 쌩으로 설치 할 수도 없는지라....(그동안은 어쩔 수 없이 다 가상환경 바깥에 설치해 썼음...ㅡㅡ!)구글링을 엄청나게 했지만 해답을 찾지 못 했다. 재설치해라, plt.use("TKAgg")를 해라, 등 엄청 많은 해결법이 있었지만 다 실패하고...우연히 엄청 단순한 방법으로 성공시켰다.그냥 plt.show 전에plt.savefig('test.png') 한 번만 해주면 된다. 그러면 test.png가 생기고 따란 성공

Programming/python 2019.07.11

bs4를 이용한 웹 크롤링 (파싱)

html은 requests 모듈을 이용해서 가져오면되고, 그다음에 원하는 데이터만을 뽑아내야 하는데, 크롬 개발자 도구와 CSS의 selector를 이용하면 개꿀빨 수 있다. 아래와 같이 말이다. import requests from bs4 import BeautifulSoup url = 'https://bluebottlecoffee.com/store/coffee' r = requests.get(url) page = r.text.encode('utf8') soup = BeautifulSoup(page, 'html.parser') my_products = soup.select( '#heap-product-card > div.dn.df-s.flex-col.grid-col-1.transitional-silve..

Programming/python 2019.01.14

파이썬에서 한글 인식

웹에서 파싱한 데이터 등 한글을 인식해야 할때 참 골치아프다. unicode를 사용하면 간단하다. #-*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') import requests #print unicode("안녕") # l = [165, 178] for x in range(1, 5000): url = 'http://www.hanatour.com/asp/booking/schedule/tour/tour_tour_comment.asp?pkg_code=JKP500190104TWW&pkg_mst_code=JKP500&value_travel_type=&value_req_page='+str(x) page = unicode(requ..

Programming/python 2019.01.14

python 정수형 signed, unsigned 변환

unsigned int로 변환하는건 쉽다. & 0xffffffff 해주면 된다. 문제는 signed로 변환이다. pwnable.kr exploitable 풀면서 고민해봤다. 이 문제는 eip를 signed로 받아서 약간 골치아프다. 0xffffffff에 1 더하고 값을 빼고 음수를 취하면 된다. def int32(x): return -(0xffffffff+1 - x) ---------------- ctypes 모듈을 이용해도 편하다. from ctypes import * c_int32(4521442434223).value

Programming/python 2018.12.18

python - 튜플

튜플 (tuple) 0. 생김새 및 정의 tp = (1, 2, 3, 4) tp = 1, 2, 3, 4 +튜플은 한번 정해진 순서를 바꿀 수 없다. +튜플은 값의 변경과 삭제 불가능. 1. 값 접근 리스트와 마찬가지로 index값으로 접근할 수 있다. tp[0] // 1 tp[3] // 4 2. 패킹 / 언패킹 (packing / unpacking) packing : 하나의 변수에 여러 값을 넣는 것 unpacking : 패킹 된 변수에서 여러 값을 꺼내는 것 a = (12, 15)#packing b, c = a #unpacking f = b, c #packing 3. 패킹 / 언패킹 활용a = 2b = 23a, b = b, a #swap

Programming/python 2016.04.20

python 자료형 - 딕셔너리

딕셔너리 (dictionary) 0. 생김새 dict ={'a': 'apple', 'b': 'banana', 'c': 'cawai'} 이렇게 정의한다. 앞에 있는 'a, 'b', 'c'를 key라고 하고, 뒤에 있는 값들을 value라고 한다.딕셔너리는 key를 통해서 value로 접근한다. 1. 값 추가 및 수정dict['three'] = 3 // 값 추가dict['a'] = 23 // 값 수정 2. 값 삭제리스트와 동일하다.del dict['a'] 3. 존재 확인'a' in dict.keys() // 참 반환'cawai' in dict.values() // 참 반환

Programming/python 2016.04.20

for문

for문에서 list를 쓸 수 있다. list = [1, 2, 3] for x in list: print x 1, 2, 3을 출력한다. list 대신 range함수를 쓸 수 있다. 결과는 같다. for x in range(1, 4): print x enumerate라는게 있다. list=[1, 'apple', 2, 'banana'] for i, a in enumerate(list): print i, a enumerate를 쓰면 리스트의 index와 value를 동시에 가져올 수 있다. ==================================================== 이제 dictionary의 경우를 보자. 아래와 같은 dictionary가 하나 있다고 하자. ages {'a': 12, 'c'..

Programming/python 2016.04.20