본문 바로가기
반응형

+ Development/Python27

[Python] 파이썬 이미지 용량 줄이기 티스토리에서 글을 작성하면서 설명 등을 하면서 이미지를 첨부하여 올리는 경우가 많이 있다. 이때 이미지도 많고 용량이 크다면 글을 로딩하는데 많은 시간이 걸리게 된다. 처음부터 이미지를 잘 만들면 되겠지만 그것도 쉽지 않다. 물론 여러 온라인 웹 사이트 등에서 이미지 용량을 줄여주는 부분도 많이 있지만 파일의 수도 제한적이고, 계속적으로 올려야 한다는 번거로움도 있다. https://www.iloveimg.com/ko/compress-image https://imgpresso.co.kr/ 그래서 기존에 사용했었던 Pillow 라이브러리를 이용해서 온라인 웹 사이트에서 해주는 것과 똑같은 거를 만들어 보았다. [Python] 파이썬 PIL(Pillow) 라이브러리를 이용한 이미지 변환(1편) [Python.. 2022. 1. 29.
[Python] UnixTime 변환하기(Unixtime To Date) 개발을 하다 보면 제공받는 데이터들 중에 Unixtime(유닉스 타임)으로 처리된 데이터를 받는 경우가 있다. 시스템상에서는 해당 값으로 표현하는 것 문제없지만, 사람들 보아야 하는 부분에서는 매우 알아보기 어렵다. 그래서 사람이 보기 편한 Date 형식으로 변환을 해보도록 하자. 관련해서 이전에 MySQL / Linux에서도 변환하는 방법을 작성해놓았는데 참고하도록 하자. [MySQL] Unixtime / Date Type(형식) 변경하기 [Linux] 리눅스 Date 명령어를 통한 Unixtime / Date 형식(Type) 확인 및 변경 하기 [Linux] 리눅스 Date 명령어를 통한 Unixtime / Date 형식(Type) 확인 및 변경 하기 데이터베이스(DB)에서 시간에 대해 설정을 하는 .. 2021. 12. 30.
[Python] 파이썬 SQLite3 이용하기 개발을 하다 보면 수많은 DataBase(데이터베이스)를 사용하게 된다. 여러 MySQL, MSSQL, PostgreSQL 등 여러 DataBase가 있지만, 그중 가볍게 사용 가능한 SQLite DB를 이용하는 방법을 알아보도록 하자. 1. SQLite 일단 SQLite가 어떤 건지 먼저 알아보도록 하자. SQLite는 작고 빠르며 독립적인 고신뢰성, 완전한 기능을 갖춘 SQL 데이터베이스 엔진을 구현하는 C 언어 라이브러리이다. SQLite는 세계에서 가장 많이 사용되는 데이터베이스 엔진이며, 많은 휴대폰과 대부분의 컴퓨터, 많은 애플리케이션에 내장되어 매일 수많은 사람들이 사용한다. SQLite 파일 형식은 안정적이고 여러 플랫폼 간 호환되며 이전 버전과도 큰 문제없이 호환된다. 또한 SQLite .. 2021. 7. 18.
[Python] 오늘 날짜의 요일 확인하기(Check the day of the week for today's date) 개발을 하다 보면 오늘 날짜의 요일을 출력해야 하는 경우가 있다. 간단하게 오늘 날짜의 요일을 출력하는 코드(Code)를 알아보도록 하자. 1. Code time 모듈에 localtime 함수에서 보면 요일의 값은 wday 변수명으로 int 형으로 나오는 0, 1, 2, 3, 4, 5, 6 값이다. 쉽게 0이 월요일, 6일 일요일이니 간단히 알 수 있지만, 그래도 좀 더 한눈에 한 번에 들어올 수 있도록 변환을 해주는 게 좋을 것 같다. 그래서 아래 예제 코드(Code)를 통해서 사용하는 방법에 대해서 알아보도록 하자. # -*- coding: utf-8 -*- import time def day_of_the_week(week_day, lang_type='en'): """ Check Day Of The .. 2021. 7. 17.
[Python] 파이썬 PIL(Pillow) 라이브러리를 이용한 이미지 변환(2편) 이미 앞에 1편에서 PIL(Pillow) 라이브러리에 대해서 알아보고, 설치 및 간단히 이미지 변환을 해보았다. 2021.07.05 - [Development/Python] - [Python] 파이썬 PIL(Pillow) 라이브러리를 이용한 이미지 변환(1편) 그럼 기본적인 부분은 이미 1편에서 진행했으니 2편에서는 이미지를 여러 방법을 통해서 변환을 하는 부분에 대해서 알아보도록 하자. 1. PIL(Pillow) 라이브러리 사용 방법 1.1 이미지 썸네일 만들기 # -*- coding: utf-8 -*- from PIL import Image # 3. 이미지 썸네일 만들기 # try: im = Image.open("anchors.png") img_width, img_height = im.size pri.. 2021. 7. 5.
[Python] 파이썬 PIL(Pillow) 라이브러리를 이용한 이미지 변환(1편) PIL(Pillow)는 Python Image Library의 약자로 이미지에 대해서 많은 작업을 할 수 있게 도와주는 파이썬 라이브러리이다. 요즘 로딩 속도에 영향을 주는 이미지 파일 사이즈 관련해서 이런저런 내용을 읽다가 다른 Tool 번거롭게 사용하는 것보다는 해당 라이브러리를 이용해서 본인에게 좀 더 최적화된 상태로 사용할 수 있어 내용을 살펴보았다. 그리고 요즘 WebP라는 구글에서 만들어진 이미지 포맷으로 구글의 서비스에서는 썸 내일 등 WebP를 많이 사용하고 있어 관심도 가지게 되었다. 그렇다면 PIL(Pillow) 라이브러리를 이용해서 어떻게 사용이 가능한지 알아보도록 하자. 1. 라이브러리 설치 우선 사용을 위해서는 Pillow 라이브러리를 설치해야 한다. pip 명령어를 통해서 아래와.. 2021. 7. 5.
[Python] 파이썬 문자열 특수문자, 공백 제거 하기(strip, rstrip, lstrip) 파이썬(Python)에서 문자열(String)에 특수문자 혹은 공백을 제거할 수 있다. 여러 방법을 통해서 특수문자 혹은 공백을 제거할 수 있으나, 파이썬에서는 해당 부분을 할 수 있도록 3개의 함수를 지원하고 있다. strip([chars]) : 전달된 문자열 양쪽(오른쪽, 왼쪽)에서 chars 제거 rstrip([chars]) : 전달된 문자열 오른쪽에서 chars 제거 lstrip([chars]) : 전달된 문자열 왼쪽에서 chars 제거 해당 문자열에 chars가 지정되고 특수문자나 공백이 제거된 문자열의 반환한다. Return a copy of the string with leading and trailing whitespace removed. If chars is given and not No.. 2021. 1. 24.
[Python] 파이썬 IF문 한줄(one-line)로 표현하기(if, if-else, if-elif-else : 삼항 연산자) 개발을 하다 보면 수만은 IF문(조건문)을 사용하게 된다. 복잡한 IF문의 경우 여러 줄(Line)로 표현하여 가독성이 좋을 수 있다. 다만, 그 수만은 IF문 중 매우 단순한 IF문들이 존재하고 있다. 이때도 간단한 IF문 조차 여러 줄로 표현보다는 한 줄(one-line)로 표현한다면 코드(Code)도 줄이고 간결하게 사용할 수 있다. 또한, 다른 개발언어의 경우(C++, Java 등)의 경우 삼항 연산자가 존재하며 삼항 연산자는 한 줄로 IF문과 같은 조건문 작성할 수 있다. 파이썬에서는 기본적으로 제공하는 기능은 아니나, 삼항 연산자처럼 사용할 수 있으며, 특히 함수(Function)의 결과값(Retrun)을 반환하는 경우 여려 줄의 IF문보다는 한 줄로 표현한다면 매우 간결하게 마무리할 수 있다.. 2021. 1. 21.
[Python] 파이썬 gtts Module을 이용한 텍스트 음성 변환(Text to Speech) gtts(Google Text-to-Speech)는 구글에서 만든 모듈(Module)이며 이외 네이버에서 제공하는 클로버(Clova) API를 이용하여 하는 방법도 있다. 이번에는 gtts 모듈을 이용하여 텍스트를 음성으로 변환하는 방법을 알아 보도록 하자. 1. 모듈 설치 우선 사용을 하기 위해서는 모듈을 설치 해야한다. pip 명령어를 통해서 아래와 같이 설치를 해보도록 하자. pip install gtts # pip를 이용한 gtts 설치 $ pip install gtts Collecting gtts Using cached gTTS-2.1.1-py3-none-any.whl (25 kB) Collecting click Using cached click-7.1.2-py2.py3-none-any.whl .. 2020. 9. 30.
[Python] 파이썬 출력 문자 색상 변경하기(python print text color change) 파이썬을 사용하다 보면 간혹 특정 문자나 텍스트(Text) / 배너 정보 등을 다른 색으로 표현해야 하는 경우가 발생한다. 이럴 때 어떻게 처리해야 하는지 알아보도록 하자. 테스트는 Python 3.8.5 버전을 기준으로 작성하였다.(물론 Python2에서도 문제없이 동작한다.) 1. 직접 설정 방법 출력되어야 하는 특정 문자나 텍스트에 바로 입력하여 사용하는 방법이다. print('\033[31m' + 'Test' + '\033[0m') print('\033[31m' + 'Te' + '\033[32m' + 'st' + '\033[0m') 이와 같이 특정 문자 앞뒤에 이스케이프 시퀀스(escape sequence)를 따르는 예약 문자를 입력하여 사용하게 된다. 우선적으로 이스케이프 시퀀스, 이스케이프 문.. 2020. 9. 19.
[Python] Python3(파이썬) MacOS(맥OS)에서 magic Module(모듈) 설치(Install) 후 libmagic find failed 해결 방법 Python2를 사용하다가 새로운 MacBook으로 변경하면서 MacOS(맥OS)가 Catalina(카탈리나)로 변경하였다. 그러다보니 Python을 대부분 Version 2 -> Version 3로 변경하여 사용하게 되었다. 그중 magic Module(모듈)을 사용하는 부분이 있는데 새로운 MacBook에서 아래와 같은 에러가 발생하면서 libmagic를 찾지 못하였다. raise ImportError('failed to find libmagic. Check your installation') MacOS(맥OS) 뿐만 아니라 다른 OS에서도 발생할 수 있으나, 우선적으로는 MacOS(맥OS)에 대한 해결 방법만 작성하도록 하겠다. 해결 방법은 제일 손쉽게 brew 명령어를 통해서 해결하는 방법이다. .. 2020. 8. 19.
[Python] 파이썬 Pandas(판다스) to_hdf 저장시 Column Size Error(컬럼사이즈 에러) 해결방안 최초 Column(컬럼) 길이보다 더 긴 String 이 입력될때 아래와 같은 에러가 발생함. ValueError: Trying to store a string with len [4] in [values_block_2] column but this column has a limit of [3]! 에러 해결 방법 AS-IS frame = pd.DataFrame( 정보 ) frame.to_hdf(self.dir_file, key='metadata', mode='a', append=True, format='table') TO-BE frame = pd.DataFrame( 정보 ) frame.to_hdf(self.dir_file, key='metadata', mode='a', append=True, format=.. 2020. 4. 21.
[Python] IF문을 이용한 List 데이터 확인하기 List(리스트)에 많은 데이터가 들어 있는 경우 특정 값이 List 안에 존재하는지 확인이 필요한 경우가 있다. 확인 하는 방법중 여러 방법이 있으나, 이번에는 IF문을 이용하여 확인하는 방법을 알아보자. Test(테스트)를 진행한 Python Version은 3.8.2 이다. 간단하게 아래와 같이 예제를 작성하였다. >>> items = ['cash', 'card', 'coin', 'stock'] >>> item = 'cash' >>> if item in items: ... print '리스트에 있음' ... else: ... print '리스트에 없음' ... 리스트에 있음 >>> items = ['cash', 'card', 'coin', 'stock'] >>> item = 'money' >>> i.. 2020. 2. 4.
[Python] 대문자 / 소문자 변환 및 Check 하기 개발하다보면, 대문자 / 소문자중 한가지로 표현이 필요한 경우가 있다. 이때 아래와 같은 함수를 통해서 변환 및 Check 해보도록 하자.1. 대문자 변환 - upper() 함수Python 2.7.10 (default, Feb 22 2019, 21:55:15) [GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> a = 'abcd' >>> print a.upper() ABCD >>> >>> b = 'aBcD' >>> print b.upper() ABCD 2. 소문자 변환 - lower() 함수Pyt.. 2020. 2. 4.
[Python] Python(파이썬) 현재 실행중인 PID 값 확인 Python(파이썬)으로 서비스 혹은 데몬을 구동시 구동되고 있는 PID값을 확인이 필요한 경우가 있다. 확인 후 해당 PID에 대한 사용량(메모리, CPU등)을 보기 위함 일 수도 있고, 강제적으로 Kill을 하기 위함 일수도 있다. 해당 내용은 "os module" 을 이용하여 확인이 가능하다 아래 내용을 통해서 간략히 확인 하는 방법을 알아보자. # python을 구동하고 해당 python의 process 정보를 확인해 보자. # 아래와 같은 경우 PID값은 922, Parent PID 값은 870 으로 확인할 수 있다. $ ps -ef | grep python 501 922 870 0 8:15PM ttys000 0:00.07 python $ python >>> import os >>> print .. 2020. 1. 7.
[Python] pip를 통해 모듈(Module) 업데이트 개발을 하다보면 모듈(라이브러리)가 업데이트 되는 경우가 있다. 이때 모든 라이브러리를 업데이트 하여 사용하지는 않는다. 그 이유는 라이브러리의 변화로 인해서 해당 라이브러리를 이용하여 개발된 부분이 비 정상적으로 동작하거나 아예 동작 안 할 수도 있다. 그러나, 위와 같이 특별히 문제가 없는 경우는 업데이트를 하는게 보안적으로나 여러방향으로 좋다. 아래와 같이 PIP 를 이용하여 업데이트를 하여 빠르게 진행할 수 있다. $ pip freeze | grep "aniso8601" aniso8601==7.0.0 $ pip install --upgrade aniso8601 Collecting aniso8601 Downloading https://files.pythonhosted.org/packages/eb/e.. 2019. 9. 24.
[Python] pycrypto Module(모듈)을 이용한 암/복호화 하기 개발을 진행하다보면 특정 데이터에 대해서 암/복호화 하여 사용하는 경우가 있다. 물론 더 복잡하게 Salt / Pepper 암호화 처리를 통해 할 수 있으나, 이번에는 간략하게 Key값을 통한 암/복화를 해보자. 반드시 pycrypto 모듈이 설치 되어 있어야 한다. # pip를 이용한 pycrypto 설치 $ pip install pycrypto 예제 code ) #!/usr/bin/env python # -*- coding: utf-8 -*- import base64 from Crypto import Random from Crypto.Cipher import AES BS = 16 pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS) unpad.. 2019. 9. 11.
[Python] HTTP - 일반적인 Response Header 파싱 코드(Lv.2) Python 을 이용한 HTTP 패킷 파싱하기 2회차 HTTP 패킷 Header 파일을 파싱하는 코드를 공유합니다. ※ Response Header 네이버 검색하는 패킷 Header 입니다 HTTP/1.1 200 OK X-Powered-By: BLOOD X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block Access-Control-Allow-Methods: GET, POST, OPTIONS Access-Control-Max-Age: 1000 Date: Tue, 22 Jan 2019 15:32:42 GMT Connection: keep-alive Transfer-Encoding: chunked ※ Response Header 파싱 코드 import o.. 2019. 8. 21.
[Python] HTTP - 일반적인 Request Header 파싱 코드(Lv.1) Python 을 이용한 HTTP 패킷 파싱하기 1회차 HTTP 패킷 Header 파일의 파싱하기 위한 코드를 공유합니다. ※ Request Header 네이버 검색하는 패킷 Header 입니다. GET /search.naver?where=nexearch&query=%EA%B0%95%EC%A0%95%ED%98%B8&ie=utf8&sm=tab_lve HTTP/1.1 Host: search.naver.com Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safar.. 2019. 8. 15.
[Python] regex 값을 dict 로 가져오기 Regex 에서 데이터를 Group화 하여 dict 형태로 출력하려면 기본적으로 Python 에 Regex 이름규칙을 지정하는 방법부터 알아보자. 1. Regex 를 일반적인 매칭 import re value = "이름" compile_regex = re.compile(".*?$") ret_value = compile_regex.match(value) if ret_value: print("Match") else: print("Not Match") 출력: Match 2. regex 그룹화 출력하기 import re value = "이름" compile_regex = re.compile("(.*?)$") ret_value = compile_regex.search(value) if ret_value: prin.. 2019. 8. 12.
300x250
300x250

loading