Social Game Developer wandering in strange dungeon.
Python Tips
asyncore.dispatcher
원래부터 nonblocking 이다.
set_socket 하는 시점에 map 에 등록된다.
StringIO.readline()
StringIO 는 file-like 객체이므로 readline() 을 지원한다. 그러나 write() 한 후 읽어들이면 None 을 리턴한다. 내부적으로 유지하는 offset 이 하나이기 때문인데, 만약 사용하려면 offset(0) 을 호출해서 포인터를 맨 앞으로 돌려줘야 한다. (너무 단순한가?)
zipfile
zip 포맷으로 특정 폴더를 압축하기 위해서는 다음과 같이 해야 한다. 이때 압축 포맷으로 ZIP_DEFLATED 를 사용해야 파일 크기가 작아진다.
스트링에서 특정 seperator 로 구분된 패턴으로 자를 때, string.split() 도 좋지만 re.findall() 을 강추
12345
>>>args='"SELECT * FROM User","aaa,bbb,ccc,ddd"'>>>args.split('"')['','SELECT * FROM User',',','aaa,bbb,ccc,ddd','']>>>re.findall('"(.+?)"',args)['SELECT * FROM User','aaa,bbb,ccc,ddd']
re 를 이용한 파일명 변경
특정 폴더 안에 여러가지 파일명들을 바꾸기 위해서는 re 모듈을 잘 사용해야 한다. 다음은 파일명에 … 을 없엘 때 쓰는 스크립트이다.