Search Results for 'Python'

3 POSTS

  1. 2008/05/02 학교 식당 메뉴를 문자로 받기! (2)
  2. 2008/02/22 구문 강조과 정규표현식
  3. 2008/02/13 Emacs: Color Theme, Python Mode

문자로 받은 화면 몇일전, 학교에서 수업시간에 어느 선배님이 "학교 식당의 식단을 문자로 받는 프로그램"에 대한 이야기를 들려주셨습니다. 파이썬으로 만든 프로그램이었는데, Beautiful Soup를 사용하면 엄청나게! 쉽다고 하셨었죠.

그래서 이틀전에, 시험 공부를 하려다가 뜬금없이.. 구글링을 해봤습니다. -_-; 파이썬 마을에서 Twill을 사용해서 문자를 보내는 예제를 찾았고, Beautiful Soup의 공식 도큐먼트를 보니깐.. 간단히 될 것 같더군요!

그래서... 만들어버렸습니다.

숭실대 정보대 식당의 식단을 문자로 받아보는 프로그램입니다.

food2sms.py : http://jong10.springnote.com/pages/1144338.xhtml

간략히 설명하면,
Beautiful Soup를 사용해서 특정 사이트에서 식단 정보를 긁어오고,
Twill을 사용해서, 문자천국 사이트에 접속 및 로그인 하고,
문자천국 사이트에서 내용을 기입한 후에..
보내기 버튼을 클릭하는 방식입니다.

보다 자세한 정보와 소스코드는 위의 링크에 있습니다. Copyleft입니다.

Beautiful Soup 라이브러리는.. 쫌.. 개사기더군요. -_-; 이거 뭐, 발로도 파싱을 할 수 있게 해놨네요. Twill 라이브러리도 상당히 만족스럽습니다. 쿠키를 지원하지 않는 듯 한게 흠이지만요.. 파이썬으로 프로그래밍을 해본 것이 처음인데, 꽤 만족스럽습니다. 그래도 루비의 보다 더 깔끔한 객체지향적인 문법이 더 마음에 들긴 합니다.

-- Jong10


Trackback URL : http://www.jong10.com/trackback/247

  1. # 신용불량 2008/05/03 02:12 Delete Reply

    결국 만들었구나-_-;

    1. Re: # jong10 2008/05/03 12:43 Delete

      응. 아침 10시 25분마다 나한테 문자로 보내줘. ㅋㅋㅋ

Leave a comment

Emacs에는 Python Mode라는 것이 있습니다. 열혈강의 파이썬 개정판 ver2에서 예제를 쳐보던 중에 Emacs의 구문 강조 기능이 아래와 같이 이상하게 나오더군요. (뭐야.. 코드인데 왜 문자열로 인식하는거야 ㅠㅠ)

파이썬 문법은 맞지만, 제대로 인식하지 못하는 에디터

p = re.compile('''href=([^'"]\S+?)[\s>]|href="([^"]*?)"|href='([^']*?)\'''', re.I)

바로 요 한줄 때문에 바보가 되어버린 것입니다. 이게 뭐, 강조에만 문제가 생기면 그냥 무시하고 예제를 때렸겠습니다만, 아랫 부분들이 전부 문자열로 인식되버리니깐, Emacs의 TAB 기능이 마비되더군요. -_-; 스페이스바로 하나하나 indent를 맞출 수도 없는 노릇이고..

"아.. 이거 다른 에디터를 찾아봐야하나.."하고 고민하다가, 결국 위 코드를 요렇게 고쳤습니다. 작은 따옴표 3개로 감쌌던 문자열을, 큰 따옴표로 하고, 대신에 그 안에 있는 글자들에서 따옴표들에 역슬래쉬를 붙여준거죠.

p = re.compile("href=([^'\"]\S+?)[\s>]|href=\"([^\"]*?)\"|href='([^']*?)'", re.I)

요 지저분한 코드로 바꿨더니, 아래 그림처럼 잘~ 나오더군요.

에디터가 이해하기 쉽게 고쳐준 모습

Syntax Highlighting 기능은 대부분의 에디터에선 정규표현식으로 검사를 해요. 예를 들어, Editplus에서는 ^[a-z_].*\([^;]*$ 라는 정규식 패턴에 부합되는 부분을 함수 본체로 인식합니다. (그래서 자동 줄변환도 되죠!).

하지만, 언어들이 복잡해져감에 따라서 정규식으로는 모든 문법을 커버하는 것이 힘든가 봅니다.
이맥스 파이썬 모드.. 살짝 실망했어요. ㅠㅠ

-- Jong10

p.s. Windows Live Writer로 지금 이 글을 작성하고 있는데, 자꾸만 C-x C-s를 누르네요 -_-;


Trackback URL : http://www.jong10.com/trackback/235

Leave a comment

1원짜리 팁!

Emacs의 설정파일 .emacs에서 컬러테마를 적용할 때에는,

(setq load-path (cons (expand-file-name "C:/~생략~/.emacs.d/") load-path))
(load-library "color-theme")

(require 'color-theme)
(color-theme-initialize) ;; <-- 요걸 몰라서 삽질했네!!
(color-theme-charcoal-black) ;; 테마 이름

요러 코롬 합니다. 자세한 것은 EmacsWiki: Color Theme에 있어요.
참조했던 사이트에는 color-theme-initialize가 안나와있어서 한참 헤맸네요. ㅠㅠ
(Color Theme는 따로 받아서 깔아줘야 함.)

 

팁 하나 더,
Emacs에서 파이썬 모드 사용하는거..

파이썬모드 다운로드: http://sourceforge.net/projects/python-mode/

python-mode.el을 load-path에 추가하고,

(autoload 'python-mode "python-mode" "Python Mode." t)
(add-to-list 'auto-mode-alist '("\\.py\\'" . python-mode))
(add-to-list 'interpreter-mode-alist '("python" . python-mode))

아래의 훅!도 넣어주면 좋아요.

(add-hook 'python-mode-hook
           (lambda ()
             (set (make-variable-buffer-local 'beginning-of-defun-function)
                  'py-beginning-of-def-or-class)
             (setq outline-regexp "def\\|class ")))
역시 자세한 것은, EmacsWiki: Python Mode에 있어요.
 
-- Jong10

Trackback URL : http://www.jong10.com/trackback/232

Leave a comment


이 블로그 구독하기!!

Recent Posts

  1. 보헤미안 랩소디
  2. 학교 식당 메뉴를 문자로..
  3. C++0x : 새로운 C++의 문법
  4. Load balancing in my life
  5. 나의 첫 Ruby 사용기

Recent Comments

  1. 응. 아침 10시 25분마다 나한.. jong10 05/03
  2. 결국 만들었구나-_-; 신용불량 05/03
  3. 3학년은 원래 그래... 원래 상.. 신용불량 04/23
  4. 그렇게 바쁘다가 갑자기 한꺼.. 기원 04/23
  5. 루비도 gem에 ruby2exe이란게.. jong10 04/16

Recent Trackbacks

  1. C++0x : 새로운 C++의 문법 이름없는 블로그 05/10
  2. 조엘, 중소S/W기업 사장님들에.. Effortless - 上善若水 - 상선.. 02/20
  3. 긴급재난문자정보 - 20일 OO지.. 용희의 블로그 2007
  4. 오 마이 갓! 3분전쯤에 지진;; Thyme; Weblog + [!] 2007
  5. 방금 전에 지진을 느꼈어!!! 에보니.Q 2007

Bookmarks

  1. Channy's Blog
  2. Daum DNA Lens
  3. Game Log
  4. LangDev
  5. likejazz.COM
  6. OpenLook :: 이야기
  7. Sherrad의 여백의美
  8. ▒ 제닉스의 사고뭉치 ▒
  9. 김국현의 낭만 IT
  10. 미친병아리가 삐약삐약
  11. 애자일 이야기
  12. 하루하루
Statistics Graph
Creative Commons License

이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.