Python: 127개의 글
C 모듈을 파이썬에서 사용하는 방법 Python에서 C모듈을 Wrapping해서 사용하는 방법에 대해서 설명한다. 보통 Python에서는 성능상 이슈가 있기 때문에, C로 작성된 라이브러리를 사용을 한다. C로 작성된 코드를, Python에서 호출 가능하도록 swig를 이용해서 아래와 같이 사용하였다. /* 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; return; } ``` /* fla..
파이썬(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를 가져오기 코드 from bs4 import BeautifulSoup import ..
파이썬 스케일이 다른 두개의 값 그리기 코드 import matplotlib.pyplot as plt fig, ax1 = plt.subplots() ax1.plot(df["..."]) # ... ax2 = ax1.twinx() ax2.plot(df["Market"]) ax2.set_ylim([0, 5]) # http://matplotlib.org/examples/api/two_scales.html 출처 : ourcstory.tistory.com/330?category=630693
Python에서 Directory가 없으면 생성하는 코드 코드 python create directory if not exists import os if not os.path.exists(directory): os.makedirs(directory) 출처 : ourcstory.tistory.com/329?category=630693
들어가며 csv, tsv, text 파일을 읽어 판다스(pandas) dataframe으로 읽는 방법이다. encoding 문제 해결 sep을 '\t', ','등 원하는 방법으로 data의 사이즈가 클 경우이는 split해서 데이터를 읽는다. 읽는 동시에 data에서 원하는 column, row만을 filtering 할 수 있다. 코드 import pandas def get_df(cols, filename, sep='\t'): iter_csv = pd.read_csv('/home/jslee/' + filename,iterator=True, encoding='utf8', chunksize=1000, sep=sep, names=cols) # df = pd.concat([chunk[chunk['field'] ..
파이썬에서 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으로 보내면 되나 ..
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..
파이썬에서 패키지가 꼬여본 사람은 알것이다. 이 virtual env가 얼마나 훌륭한 역할을 하는지, 또한 여러개의 프로젝트를 수행할때 각각의 프로젝트마다 요구되는 패키지의 버전이 다를 수 있기 때문에 프로젝트 별로 환경을 구축하는게 좋다. 물론 배포할때는 필수다. 처음에 virtualenv를 pip를 통해 설치하면 된다. $ pip install virtualenv 설치가 완료되면 아래와 같이 차례대로 입력하면 virtualenv의 환경으로 진입한다. $ virtualenv venv $ source venv/bin/activate 기존 shell과 다르게 $(venv) /home/banana 식으로 화면에 표시되면 정상적으로 진입한 것이다. 이제 여기서 설치하고 싶은 패키지를 pip install 으로..
파이썬에서 matplotlib을 import하는데 아래와 같은 에러가 발생했다. RuntimeError: Python is not installed as a framework. The Mac OS X backend will not be able to function correctly if Python is not installed as a >>> import matplotlib.pyplot as plt Traceback (most recent call last): File "", line 1, in File "//anaconda/envs/myenv/lib/python2.7/site-packages/matplotlib/pyplot.py", line 109, in _backend_mod, new_figure..
stdin과 stdout을 이용해서 데이터를 파이핑할 수 있다. 파일에 숫자가 포함된 줄이 몇개나 있는지 확인하는 방법 import sys, re regex = sys.argv[1] for line in sys.stdin: if re.search(regex, line): sys.stdout.write(line) import sys count = 0 for line in sys.stdin: count += 1 print count $ cat SomeFile.txt | python egrep.py “[0-9]” | python line_count.py 문서의 단어를 모두 세어 보고 가장 자주 나오는 단어를 출력해주는 코드 import sys from collections import Counter # 출력하..