본문 바로가기
반응형

Python112

[Python] Mysql Connection Pool 사용하기 Python에서 Connection Pool? 연결 풀링은 연결이 요청 될 때마다 생성되는 것이 아니라 재사용됨을 의미합니다 . Python을 통한 MySQL 연결 설정은 주로 MySQL 커넥터 Python API가 중간 계층 서버 환경에서 사용되는 경우 리소스와 시간이 많이 소요됩니다. 즉, 여러 MySQL 서버에 대한 다중 연결을 유지하고 연결을 쉽게 사용할 수 있어야하는 미들웨어입니다. 예를 들어, 애플리케이션은 데이터 검색 또는 데이터 업데이트를 위해 데이터베이스를 매우 자주 사용합니다. 모든 새 요청 애플리케이션을 처리하기 위해 새 MySQL 데이터베이스 연결을 생성하고 요청 완료 후 연결이 닫힙니다. 다시 새 요청에 대해 애플리케이션은 새 연결을 설정하고이 프로세스는 모든 새 요청에 대해 반복.. 2021. 6. 18.
[Python] urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate SSL: CERTIFICATE_VERIFY_FAILED with Python3 urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate urlopen 으로 이미지를 다운로드 받으려는데 위와 같은 오류 메시지가 발생함. 해결 1. certifi 링크 pip install certifi 이걸로 해결이 안된다면 아래 확실한 방법으로~ 해결 2. 아래와 같이 ssl 을 import 하고 프로그램 시작 시 한번 실행함. import ssl ssl._create_default_https_context = ssl._create_unverified_context 2021. 6. 18.
[Python] Hex Str 을 binary 로 바꾸기 (Convert Hex to Binary) Convert Hex to Binary import binascii binary_string = binascii.unhexlify(hex_str) 2021. 6. 9.
[Python] 문자열을 특정 개수로 묶어서 배열을 만들기 '0a21a0b2' 이런 문자열이 있으면 n개 씩 묶어서 ['0a', '21', 'a0', 'b2'] 이렇게 만드려면, hex_str = '0a21a0b2d40a20b2d4aa2caa2c0d' length = 2 hex_list = [hex_str[0 + i:length + i] for i in range(0, len(hex_str), length)] print(hex_list) 결과 ['0a', '21', 'a0', 'b2', 'd4', '0a', '20', 'b2', 'd4', 'aa', '2c', 'aa', '2c', '0d'] 위 소스에서 length = 3으로 하면 ['0a2', '1a0', 'b2d', '40a', '20b', '2d4', 'aa2', 'caa', '2c0', 'd'] 2021. 6. 9.
[Python] list 의 item들을 특정 개수만큼 나눠서 배열을 만들기 배열안의 값들을 n개씩 나눠서 배열을 만들고 싶을 때, n = 4 [1, 2, 3, 4, 5, 6, 7, 8, 9] --> [[1, 2, 3, 4], [5, 6, 7, 8], [9]] my_list = [1, 2, 3, 4, 5, 6, 7, 8, 9] # 몇개씩 나눌 것인지 n = 4 final = [my_list[i * n:(i + 1) * n] for i in range((len(my_list) + n - 1) // n )] print (final) # [[1, 2, 3, 4], [5, 6, 7, 8], [9]] 2021. 6. 9.
[Python] 2차원 이상의 배열을 각각 axis로 배열 만들기 아래와 같은 배열이 있을 때, (배열의 배열도되고, 튜플의 배열도 됩니다.) all = [ (0, 'a'), (1, 'b'), (2, 'c'), (3, 'd') ] 여기서 행으로 나눈 [0,1,2,3] 과 ['a', 'b', 'c', 'd'] 의 배열을 만들고 싶다면 방법1. 일반적인 방법 a, b = [], [] for al in all: a.append(al[0]) b.append(al[1]) # a : [1,2,3,4] # b : ['a','b','c','d'] 방법2. numpy 사용 na = np.array(all) a = list(na[:, 0]) b = list(na[:, 1]) 단순히 list 를 뽑아내기만 하는거면 numpy 사용 비추입니다. 방법3. map, zip 사용 a, b = l.. 2021. 6. 8.
[Python] convert uint16 to uint8 uint16 은 : 0 ~ 65535 uint8 은 0~255 (RGB 에서 사용하는 타입입니다) uint16에서 uint8 타입으로 변환하는데는 여러 방법이 있지만 normalize를 해야합니다. 단순히 im.astype('uint8') 로 해서는 데이터가 손실됩니다. opencv 사용 : cv2.normalize im_uint8 = cv2.normalize(im_uint16, None, 0, 255, cv2.NORM_MINMAX, dtype=cv2.CV_8U) Skimage 사용 : img_as_ubyte rom skimage import exposure, img_as_ubyte im_uint8 = img_as_ubyte(exposure.rescale_intensity(im_uint16)) 2020... 2021. 5. 28.
[python] queue 를 list 로 (queue to list) list(que.queue) from queue import Queue que = Queue() que.put(111) que.put(222) que.put(333) results = list(que.queue) print(results) # results = [111, 222, 333] print(q.empty()) # False print(q.qsize()) # 3 print(q.get()) # 111 print(q.qsize()) # 2 print(results) # results = [111, 222, 333] 2021. 5. 4.
[Python] InvalidURL Url Encode / Url 한글 처리 InvalidURL urllib.request 를 사용할 때 Url 에 한글이나 특문이 있으면 오류가 발생할 수 있습니다. 아래와 같은 코드는 오류가 발생하죠. from urllib.request import Request, urlopen url = 'https://hello-bryan.tistory.com/manage/여기에 한글이 있다.txt' req = Request(url, headers={'User-Agent': 'Mozilla/5.0'}) res = urlopen(req) if res.status == 200: print('성공') else: print('실패코드 {}'.format(res.status)) InvalidURL URL 에 공백이 있어서 그렇죠. 그럼 공백을 빼고 한글만 있다면? .. 2021. 4. 20.
Python 으로 Crawling 에 필요한 준비 준비 할 사항만 체크해봅니다. 1. Chrome driver 링크 - 본인pc의 크롬 브라우저에 맞는 버전으로 다운로드하고 경로를 기억해둠. 2. python library 설치 - 또는 pip install 명령어 직접 실행. $ pip install selenium 3. Chrome driver 객체 생성 from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.desired_capabilities import DesiredCapabilities chrome_driver_path = 'C:/chromedriver/chromedriver_89/chrome.. 2021. 4. 15.
728x90
반응형