python csv and encoding in csv file.

파이썬의 csv 모듈을 이용해서 MS Excel2010 에서 만든 csv 형식을 가져오는 코드이다. 별것 없는 코드를 올리는 이유는 단연 인코딩 때문인데 csv 모듈은 파이썬2.7 에서 다음과 같은 내용이 있다. Note This version of the csv module doesn’t support Unicode input. Also, there are currently some issues regarding ASCII NUL characters. Accordingly, all input should… Read More

[번역] 6 Python Performance Tips

원문 : http://blog.newrelic.com/2015/01/21/python-performance-tips/?utmsource=Python+Weekly+Newsletter&utmcampaign=c403fa901e-PythonWeeklyIssue175January222015&utmmedium=email&utmterm=0_9e26887fc5-c403fa901e-312692397 1. 핵심적인 부분은 외부 패키지에 의존해라. 파이썬은 쉽지만, 시간과 밀접한 관련이 있는 작업들에서 좋은 성능을 제공하지 않는다.  그래서 C, C++ 기계어, 외부 패키지들을 사용하면 성능 향상을 가져올수 있다. 이런 패키지들은 플랫폼 지향적(… Read More

python json 기반 conf 파일 로드하기(object_hook)

conf 를 json 파일로 쓰는 경우가 있는데 주로 개인 프로젝트 할때 많이 쓰는 편인데 결국 conf 라는것을 환경설정 파일이기 때문에 파일로 가져와서 읽어야 하는 경우가 많다. 이 경우 json 을 바로 dict 으로 loads 해서 사용하게 되면 conf[“port”] 이런식으로 접근해야 하는데 object_hook 를 이용하면 객체의 형태로 접근할수가 있다. 좀더 코드가 깔끔해 진다랄까.  2015/… Read More

python 3항 연산자

이걸 언제 쓰냐라고 생각했지만, 내가 오늘 이 글을 적게 될줄은 ‘나’조차도 몰랐다. 3항 연산자, 일명 if 축약 이라고도 하는데 사실 그리 쓸일이 많지는 않은데 flask 에서 유독 짜증나는 부분이 있어서 쓰게 되었다. flask 에서 함수를 구성하다 보면 초반에 하는 것중 하나가 request 객체에서 get 혹은 post 에 대한 데이터를 가져오는 작업이다. 일반적으로 get 의… Read More

python create excel, add sheet

파이썬에서 엑셀(csv 형식이 아닌) 파일을 만들고 시트를 추가하는 코드인데 openpyxl 을 사용하는 코드이다. 파라미터로 전송되는 구조에 종속적인 함수이긴 한데, 간단하게 사용법을 적어두는 목적이기에. 좀 애매한 부분들중 하나는 첫 시트를 지우지 않으면 시트 추가시 Sheet 라는 이름의 첫 시트가 남아 있는 문제가 있어서 Sheet 라는 이름을 찾아서 지우고 있다. 레퍼런스를 찾아서 첫 시트를 이름을 바꾸어서… Read More

python 리눅스 하드웨어 정보 가져오기

서버가 들어왔을때 처음으로 해야하는 작업이 서버 정보를 가져와서 남겨두는 작업인데, 솔직히 리눅스 명령어로 하는게 더 편하긴 하지만, 내가 그런 명령어에 익숙하지 않고, 파이썬이 더 익숙한 지라 아래의 파이썬 코드를 돌려서 수행하면 된다. 기타 리눅스 하드웨어 관련 정보 파이썬으로 가져올 경우  http://amitsaha.github.io/site/notes/articles/python_linux/article.html 을 참고하면 된다.… Read More

python Celery 기본 세팅

예전부터 써보고 싶었는데 관련 업무가 주어져서(정확히는 그냥 내가 쓰고싶은데 업무시간에 테스트 하고 싶어서) 정리해 본다. 그냥 아주 기본적으로 돌려보는 정도.  Broker 세팅(Redis) – redis.io 에서 설치하면 끝  – 홈페이지에 나와있는 별도의 세팅은 redis.conf에서 하는것이 아님.  Task 만들기 – 하고자 하는 일을 정의하는데 @app.task 라고 써둔다.  – 위의  코드에서 보면 add와 insert_log 같은 task… Read More

2014 제1회 파이콘 코리아(pyconkr)를 다녀와서.

신청할때는 갈지말지 일말의 여지가 없었지만, 문제는 그주에 여러가지 행사 예를들면 영종도에가서 드림카를 타본다는 등의 행사등이 있었지만 내가 선택한건 pyconkr 이었다.  숙명여대라는 멀고먼 ㅎㅎ 젬마홀은 도체제 어딘지.(네이x 지도에도 안나와) 전날부터 나는 이미 차를 끌고갈것인데 왜 주차에 관한 애기는 없을까 생각도 하면서 다음 스트릿뷰로 불법주차를 고민했고, 결과적으로 불법주차는 성공. 우연찮게 불법주차 에서 내리면 바로 젬마홀. ㅎㅎ… Read More

pypi 올리기 정리

올릴때 마다 고생하는데 간단 정리  pypi.python.org 에 로그인  2. setup.py가 준비된 상태에서   > python setup.py register  3. 올리기   > python setup.py sdist upload  ** * 주의할점 **  – python setup.py sdist upload 이후, .egg-info 폴더내 SOURCE.TXT 파일에 동작할 파이썬 파일이 있어야 함. – 반드시 올리고 나서 pip install 을 통해서 다른 환경에서 설치되는지 python 인터프리터… Read More

(django) inspectdb, 기존 테이블을 models.py 로 가져오기

많은 장고(Django) 예제에서 models.py 를 먼저 만들고 syncdb 를 통해서 실제 데이터베이스에 구조를 잡게 되는데 사실은 실제 데이터베이스에 이미 데이터나 구조가 있는 경우가 더 많은것같다. 그럴경우 일일히 models.py에서 데이터 모델들을 잡아주는것이 번거로운데(테이블이 많으니까) 장고에서는 inspectdb 라는 기능을 통해서 settings.py에 연결되어 있는 데이터베이스에 대한 models.py의 내용을 가져올 수 있도록 해준다.… Read More

python travis-ci 와 github repository 연동하기

별거 없다. 파이썬 기준으로 설명 travis-ci 는 github 와 연결되어서 개발자가 어떤 commit을 할때마다 원하는 테스트 혹은 빌드를 할수 있는 서비스라고 보면 이해가 쉬울것 같다. 여기서는 기본적으로 연동을 하고, python 의 unitttest 를 travis-ci 로 실행시키고 그 결과를 github README.md 에 표시하는 방법에 대해서 설명하겠다. 1. 기본 연동 – 연동하는 방법은 쉬운데 일단 travis-ci 와… Read More

(Django) Aptana Studio3 Django Not found 오류 해결법

Django 프로젝트를 만들려고 하는데 pip install django 로 django를 설치했음에도 불구하고 Django not found 라는 오류창과 함께 프로젝트가 생성되지 않는다. 한창 삽질을 했는데 문제는 path 부분에서 site-packages 를 잡아주지 않아서 생기는 문제이다. APTANA STUDIO3 에서 preference 에 들어가서 pydev=> interpreter-python 에 들어가면 아래의 화면을 볼수 있다. site-packages 는 pip install 을 통해서 받은 라이브러리가 저장되어… Read More

(flask) Pluggable View, Class 에서 요청처리하기

Pluggable View 라고 말이 어려운데, 간단하게 말하자면 flask 는 기본적으로 url 과 함수의 맵핑으로 이루어져있다. 아래의 Quick Start 에서도 보면 알겠지만, url “/ ” 는 helloworld() 라는 함수에 맵핑이 되어 있어서 / 로 들어오게 되면 helloworld() 함수로 들어오게 된다.  사실 flask를 많이 써보신분들은 아시겠지만, 빠르게 개발할수 있다는 측면에서 매우 좋지만 view 즉, url 별로 보여줘야 하는 페이지가 증가하는… Read More

(python) try ~ except and trace

이상하게 파이썬을 빨리 빨리 뚝딱 만드는 언어로 많이 쓰는데(사실 나도 그렇게 쓴다.) 그런데 간호 pypi 에 올려서 욕을 안먹으려면 예외 처리를 해야한다. 당연한 애긴데. ㅎㅎ 아무튼 위의 소스코드를 보면 try: ~ except: 문으로 묶는 것이 기본이다. catch 에 해당하는 것이 except 라고 보면 되는데, Java 처럼 자세히 나오지 않기 때문에 traceback 을 추가해줘야 한다. sys.… Read More

(python) opengraph 라이브러리 리뷰

사실 오픈그래프라는 것에 대해서 알게 된것은 전 포스팅에서 말했지만 우연한 기회였다. 난 그때만 해도 여전히 오픈그래프에 대해서 신기해하고 있던 터라 구글 검색을 해보았는데 파이썬 기반 오픈그래프 파싱 라이브러리가 있었고 분석했던 내용을 소개하고자 한다.  인스톨은 아래와 같이 하면 되고  pip install opengraph  사용하는 방법은 아래와 같다.  간단한 편인데, url=”http://facebook.com” 이렇게 url을 지정하는 방식… Read More

(python) html unescape

HTML 가져온 것을 화면에 보여주거나 할때 반드시 해야하는 작업중에 하나가 바로 언이스케이프작업(Unescape) 이다. HTML 안에 특수 문자들은 어떤 일련의 문자열로 표현이 된다. 예를 들면, ” ” 공백은    <, > 은 < > 이런식으로 말이다. 그렇기 때문에 저런 문자들이 원래 우리가 이해하는 특수문자로 바꿔주는 작업을 하는데 그것을 unescape 작업이라고 한다. 반대로 특수문자들을 일련의 약속된 문자열로 바꾸는것은 escape 작업이다.  아래의… Read More

(python) 사전 정렬 dictsort.py

사전 구축작업 같은것을  있는데, 사실 정렬을 하고 뭔가 필터링 시에 이진탐색등의 방법으로 찾는것이 빠르긴 하다. 때문에 사전 구축작업시에 아무래도 정렬을 하는게 좋긴 한데, 사람손으로 하기엔 사전의 양이 많아지면 많아 질수록 힘들다. 아래의 코드를 보면 알겠지만, -f file또는 -d directory 등의 옵션으로 파일하나 혹은 사전이 있는 디렉토리 자체를 지정할 수 있도록 하였다.… Read More

(python) webkit2png, webpage screenshot

원래는 이것을 찾으려고 한게 아니고, 웹 페이지에서 여러가지 정보를 가져오는 스크립트를 찾던중에 찾은 재밌는 일종의 툴인데, 파이썬 기반으로 지정한 웹 페이지의 스크린샷을 뜨는 작업을 해준다.  http://www.paulhammond.org/webkit2png/ 위의 홈페이지에 가보면 자세한 설치법과 사용법이 나와있는데, 2분정도면 설치하고 테스트를 해 볼 수가 있다. 주의해야할 점은 블로그같은 경우, 한 페이지에 여러글이 길게 나와있는 경우, 만드는… Read More

(Python) 간단하게 테스트 파일 만들기

업체 특성상 테스트 파일을 많이 만들어야 하는 경우가 있다. 그런데 일일히 다 만들기도 귀찮고 때로는 사이즈를 정해서 만들어야 할 경우가 있다. 예를들어, 1MB 단위로 10만개 데이터를 만들어서 넣어야 하는 경우가 있다. 내용 역시도 중요한 경우가 있다. 그냥 영문자만 가득 채워야 하는 경우가 아니라 완벽한 한국식 문장이 들어가야 하는 경우가 있다.  파이썬으로 만든 아래의 코드는 사용자로… Read More