language/python 9

re.split() 과 str.split() 차이

문자열을 정규식을 구분자로 하여 split 하는데 정규식 package re를 사용한 re.split()과 string 내부 메소드를 사용한 str.split() 의 결과값이 다른 이슈가 있었다. import re pattern = r',(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)' data = "\"UK/밑바닥부터 시작하는 딥러닝\",homepage,http://www.sample.co.kr" test1 = re.split(pattern, data) test2 = data.split(pattern) print(test1) print(test2) 분명 같은 정규식인데 re.split에서는 되고 str.split에서는 안된다. 이유는 당연한 거였는데 re.split 메소드는 regex pat..

language/python 2022.06.17

만능 로그 출력기

import logging 만 하면 handler가 붙지 않아 콘솔에 출력이 안된다. 그래서 보통 logging 설정해주는 다음 모듈을 한번 만들어 놓고 사용하는 편이다. 실행되는 main 모듈에 한번만 import 하면 된다. 나머지 하위 모듈에서는 import logging 만 해주면 알아서 handler가 붙는다. # -*- coding: utf-8 -*- import logging def setLog(): logging.basicConfig( format="[%(asctime)s] [%(process)s] [%(filename)-s:%(lineno)-s] [%(levelname)s] %(message)s", level=logging.DEBUG, handlers=[ logging.StreamHand..

language/python 2022.02.21

list.sort() 와 sorted(list) 의 차이

list.sort() 은 list안에서 정렬을 수행한다. return None arr = [1,3,10,2,7] print (arr.sort()) print (arr) None [1, 2, 3, 7, 10] sorted(list) 는 기존 배열 순서를 바꾸지 않는다. return sorted list literable한 자료형이라면 모두 사용 가능하고 key, reverse 파라미터가 있다. def sorted(iterable: Iterable[_T], key: Optional[Callable[[_T], Any]]=..., reverse: bool=...) arr = [1,3,10,2,7] print (sorted(arr)) print (arr) [1, 2, 3, 7, 10] [1, 3, 10, 2, 7..

language/python 2020.03.06

virtualenv 가상환경

python은 실행환경이 version, package등이 다를 수 있기 때문에 가상환경에서 실행시키는 것이 좋다. 가상환경을 통해서 실행시키면 모듈을 실행시키는데 딱 필요한 최소한의 package만 pip등등을 통해서 설치하면 된다. 나중에 docker에 올릴때도 유용하다. 나는 python2와 python3 둘 다 사용했기 때문에 버전별 다른 가상환경 실행방법도 작성해 보겠다. python 버전 확인 python --version virtualenv 설치 (python2) pip install virtualenv //또는 py -2 -m pip install virtualenv (python3) pip3 install virtualenv //또는 py -3 -m pip install virtualen..

language/python 2019.07.28

python for else 문

파이썬에서는 다른 언어에서 제공하는 for문 외 다양한 기능들을 제공하는데, for else문도 그 중 하나이다. for문에 break가 포함되어 있을 때 사용가능한데, for문을 돌던 중 break를 만나면 for문을 빠져나오는건 일반적인 언어와 같지만 break문을 만나지 않았다면 for문 종료 이후 else문이 실행된다. for item in range(0,5): print item if item == 3: break; else: print "hello" output) 0 1 2 3 for item in range(0,5): print item else: print "hello" output) 0 1 2 3 4 hello

language/python 2019.03.09