Python/Python 프로그래밍: 68개의 글
파이썬에서 gzip파일을 읽는 방법 2가지 성능 비교 gzip 파일 확인 gzip의 파일을 읽으려면 shell에서는 zcat을 이용하면 쉽게 데이터를 확인이 가능하다. $ zcat * | head -100 $ zcat * | wc -l 아래 소스코드는 zcat과 pipeline을 이용해 읽는 방식과, gzip.open을 이용해 gzip의 파일을 읽는 속도를 비교한 코드이다. 코드 import os import sys if sys.version.startswith("3"): import io io_method = io.BytesIO else: import cStringIO io_method = cStringIO.StringIO import gzip import subprocess import time di..
파이썬 (Python)에서 리스트에 있는 값들의 모든 조합을 구하기 파이썬에서 리스트에 있는 값들의 모든 조합을 구하기 위해서는 여러가지 방법이 있다. 파이썬 기본 라이브러리인 itertools을 사용하면 쉽게 구할 수 있다. 하지만 각각의 차이점을 알고 있어야 한다. from itertools import product from itertools import permutations from itertools import combinations 사용시기 하나의 리스트에서 모든 조합을 계산을 해야 한다면, permutations, combinations을 사용 두개 이상의 리스트에서 모든 조합을 계산해야 한다면, product를 사용 하나의 리스트에서 모든 조합을 구하기 items = ['1', '2', ..
파이썬 (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\..
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..