반응형

Programming/Python 61

파이썬(Python) 리스트 모든 조합 구하기 (combination vs permutations vs product)

파이썬 (Python)에서 리스트에 있는 값들의 모든 조합을 구하기 파이썬에서 리스트에 있는 값들의 모든 조합을 구하기 위해서는 여러가지 방법이 있다. 파이썬 기본 라이브러리인 itertools을 사용하면 쉽게 구할 수 있다. 하지만 각각의 차이점을 알고 있어야 한다. 사용시기 하나의 리스트에서 모든 조합을 계산을 해야 한다면, permutations, combinations을 사용 두개 이상의 리스트에서 모든 조합을 계산해야 한다면, product를 사용 하나의 리스트에서 모든 조합을 구하기 두개 이상의 리스트의 모든 조합 구하기

Programming/Python 2017.12.17

파이썬(Python) 한글 문자 길이

파이썬 (Python)에서 한글 문자 길이에 대해서 작성한다. 파이썬에서 제일 거지같을 때 만약 파이썬에서 그냥 len(text)를 하면, 어떻게 결과가 나올까 결론부터 말하면 정말 거지같은건 파이썬 2.x의 버전에서는 기본 인코딩은 ascii 이기 때문에 unicode로 처리를 해야 한다. 만약 len(text)를 한다면 len('바나나')의 결과는 3이 아닌 9가 나온다 파이썬에서는 인코딩(encoding)문제가 많아서, 확실하게 이해하고 하나의 솔루션을 만들어 놓는게 좋다. 예를 들면 모든 텍스트에 hangul('바나나')에서 hangul 함수를 만들어 놓으면 좋다. 3이아닌 9가 나오는 이유 그 이유는 ? '바나나'의 값은 다음과 같다 '\xeb\xb0\x94\xeb\x82\x98\xeb\x82\..

Programming/Python 2017.12.10

C를 Python으로 Wrapping하는 방법

C 모듈을 파이썬에서 사용하는 방법 Python에서 C모듈을 Wrapping해서 사용하는 방법에 대해서 설명한다. 보통 Python에서는 성능상 이슈가 있기 때문에, C로 작성된 라이브러리를 사용을 한다. C로 작성된 코드를, Python에서 호출 가능하도록 swig를 이용해서 아래와 같이 사용하였다. wrapping될 C코드 파일 설명 /* flags.c – Source file */ ```c include include “flags.h” int gFlag = 0; void welcome_msg(char *msg) { printf(“%s\n”, msg); return; } int get_flag() { return gFlag; } void set_flag(int flag) { gFlag = flag; ..

Programming/Python 2017.12.10

파이썬 HTML 파싱 하는 방법

파이썬(Python) beautifulSoup 사용해서 html page 파싱(parsing) 데이터 scrap을 할때 많이 사용하는 beautifulsoup을 이용해서 html page를 parsing 하는 코드 (아래 참고) 코드 간단 설명 특정 tag의 값(text)을 가져오기 html page의 값을 가져온 이후에 soup.p의 tag의 값을 가져온다 p의 tag를 갖고 있는 text를 가지고 와서 words로 split p의 id로 가져오기 모든 paragraph의 리스트를 가져오기 p의 tag 중 important class의 값을 갖고 있는 paragraphs 가져오기 span의 요소 안에 포함된 모든 div를 가져오기 코드

Programming/Python 2017.11.02

[Python] Flask Response Encoding 문제

파이썬에서 response를 보내는데, utf8이아닌, 유니코드 그대로 보내지고, 화면에 출력되는 문제가 발생했다. 정말 파이썬 하면서 encoding 문제는 진짜… 항상 마주할때마다 이렇게 해서 고쳐야지~라고 생각하고 고쳤을때 바로 안되면, 그냥 당황스럽기 짝이없음. { "code": 100, "data": { "\uc548\ub155": 2, "\ud558\uc774\ub8e8": 2 }, "mesg": "success", "method": "get", "target": "/api/test", "time": 0.001} 아무래 utf8로 encoding을 해도 결과는 같음, postman에서 json으로 보면 아주 예쁘게 보여서 content-type을 appliction/json으로 보내면 되나 했..

Programming/Python 2017.02.07

[Python] Flask logging 하는 방법

WAS에서 logging을 남기는건 기본중에 기본, 파일로 로깅을 남기는 방법과 에러가 나면 메일을 보내주는 방식이 두가지가 있다. 참 편하게 다 해주니 너무 좋구나. 이번에는 file로 logging을 남기기로 생각했다. 디버깅을 하기 위해서는 file로 많은 정보가 있을수록 좋다. 여러개의 file_handler를 사용해서 구현하면 된다. * FileHandler - logs messages to a file on the filesystem. * RotatingFileHandler - logs messages to a file on the filesystem and will rotate after a certain number of messages. * NTEventLogHandler - will l..

Programming/Python 2017.02.07

[Python] Virtualenv 설치 및 dependencies 관리하기

파이썬에서 패키지가 꼬여본 사람은 알것이다. 이 virtual env가 얼마나 훌륭한 역할을 하는지, 또한 여러개의 프로젝트를 수행할때 각각의 프로젝트마다 요구되는 패키지의 버전이 다를 수 있기 때문에 프로젝트 별로 환경을 구축하는게 좋다. 물론 배포할때는 필수다. 처음에 virtualenv를 pip를 통해 설치하면 된다. $ pip install virtualenv 설치가 완료되면 아래와 같이 차례대로 입력하면 virtualenv의 환경으로 진입한다. $ virtualenv venv $ source venv/bin/activate 기존 shell과 다르게 $(venv) /home/banana 식으로 화면에 표시되면 정상적으로 진입한 것이다. 이제 여기서 설치하고 싶은 패키지를 pip install 으로..

Programming/Python 2017.02.07
반응형