'파이썬'에 해당되는 글 4건

  1. 2010/03/01 유튜브 동영상 다운받는 프로그램 만들기
  2. 2009/06/29 파이썬 3.1 릴리즈
  3. 2008/12/11 파이썬 3.0 발표 - python 3.0 released!!
  4. 2006/09/20 파이썬 스크립트 - python 2.5 정식버젼 릴리즈 기념 (1)
2010/03/01 13:14

유튜브 동영상 다운받는 프로그램 만들기

 우연히 유뷰브 동영상을 다운받는 프로그램의 소스를 보게 되어서 파이썬으로 직접 코드를 짜면서 따라가보았다. 생각보다 간단하지만, 한단계를 거쳐서 가야해서 조금 번거롭기는 하다. 다음과 같은 과정으로 플래시 동영상 파일인 flv 파일을 다운받을 수 있다.

  1. 원하는 video id 를 얻는다. 이건 보통 play 하는 url 에, v=???? 라며 적혀있다.
  2. 특정 url 에 원하는 video id 를 넣어서 토큰(token)이라는 걸 얻는다.
  3. 다시 특정 url 에 원하는 video id 와 앞에서 얻은 토큰을 얻어서 다운로드를 한다.

 파이썬으로 만들어본 코드는 다음과 같다. 가장 간단한 과정을 모두 보여주므로, win32 나 C# 으로 이 과정대로 따라 만들면 쉽게 만들 수 있을것 같다.

import urllib
import re

def testmain():
    videoid = "KIvwdpYII7s"

    url = u"http://www.youtube.com/get_video_info?video_id=%s&el=embedded&ps=default&eurl=" % videoid

    f = urllib.urlopen(url)

    info = urllib.unquote(f.read())

    r = "token=(.*?)&"

    token = re.findall(r, info)[1]

    downloadurl = u"http://www.youtube.com/get_video?video_id=%s&t=%s&eurl=&el=embedded&ps=default" % (videoid, token)

    downloadWebRequest = urllib.urlopen(downloadurl)

    outfile = open("a.flv", "wb")
    outfile.write(downloadWebRequest.read())
    outfile.close()
   
if __name__ == "__main__":
    testmain()

 pop.wimy.com 와 연계하면 재미있는 프로그램이 나올수도 있을것같다 ^^


Trackback 0 Comment 0

Trackback : http://blog.wimy.com/trackback/302 관련글 쓰기

2009/06/29 02:14

파이썬 3.1 릴리즈


 Python(파이썬) 3.1 이 릴리즈되었습니다[링크].

 자세한 변화는 http://docs.python.org/dev/py3k/whatsnew/3.1.html 에서 살펴보시고, 이번에도 간단한 내용만 살펴봅니다 :)

- An ordered dictionary type
 순서가 있는 사전 형식. 기존에는 key/value 로 된 일종의 해시맵의 내용을 하나씩 얻어올 때 임의의 순서대로 얻어왔다. 하지만 이제 collections.OrderedDict 클래스를 사용하면 순서대로 얻어올 수 있다.

- builtin 함수인 format() 이나 str.format() 을 이용하여 다양한 형식 지정자를 사용할 수 있다.
 C 의 printf() 의 %d, %02d 처럼 다양한 형식으로 표현할 수 있다.

- 새로운 유닛테스트 기능이 추가되었다. 테스트를 건너뛰는 기능과 새로운 assert 메서드가 추가되었다.

- int 타입에 대한 다양한 최적화

- 더욱 빨라진 io 모듈(3.0에서는 파이썬으로 제작했으나, 3.1에서는 C 로 다시 제작)

- Tile support for Tkinter

- A pure Python reference implementation of the import statement

- 중첩된 with 문을 위한 새로운 문법

- 기타
  * raound(x,n) 함수가 x 가 interger 이면 integer 를 반환한다.
  * UTF-8, UTF-16, LATIN-1 의 디코딩이 2~4배 빨라짐



Trackback 0 Comment 0

Trackback : http://blog.wimy.com/trackback/249 관련글 쓰기

2008/12/11 04:44

파이썬 3.0 발표 - python 3.0 released!!

사용자 삽입 이미지

 드디어! 파이썬 3.0 이 발표되었다(사실 딱히 기다리지는 않았다;;) 그래서 당연한 호기심으로 어떤 변화가 있고, 어떤 좋은 기능들이 추가되었는지 살펴보았다. 파이썬 3.0 의 새로운 점에 대한 링크는 여기이다. 꽤 긴 문서라서 눈에 잘 들어오는 부분만 적어본다.

 먼저 알아둬야 할것은 3.0 은 2.6과의 하위 호환성을 가지지 않는다는 점이다. 아마 이것 때문에 꽤 말들이 많을 것 같다.

- print 의 진정한 함수화
   - print "abcd" 이렇게 이제 못 쓴다. print("abcd") 이렇게 제대로 써야한다.
   - print "abcd", 이렇게 줄바꾸지 않게 하던건, print("abcd", end=" ") 이렇게 쓴다.
- list 대신 view 와 iterator 를 쓴다고 합니다. 기존에 list 로 반환하던 함수들이 없어지거나 함
- 비교 연산자가 비교가 무의미한 경우에 TypeError 를 발생시킨다. None < None 같은 경우
- "1/2" 는 0.5(float) 을 돌려줌. "1//2" 는 0(int)를 돌려줌
- sys.maxint 는 int 의 제한이 없어져서 사라짐
- 모든 문자열은 유니코드이다.(단 인코딩된 유니코드는 바이너리이다)
   - 유니코드를 위해 u"..." 와 같은 형식이 필요없다
- 기본 소스 인코딩은 utf-8 이다
- as 와 with 는 예약된 단어이다(실제로 2.6부터였다)
- True, False, None 은 예약된 단어이다(2.6에서부터 None 은 강제였다)
- 비교연산자 <> 는 제거되었다(!= 를 써라)
- 오래된 라이브러리들이 제거되었다. gopherlib, md5 는 제거되었다(md5는 hashlib 로 대체)
- raw_input() 이 input() 으로 대체되었다
- 파이썬 2.5보다 10% 느려졌다. 일단 3.0 발표 후 개선할 것이다.


유니코드 지원과 "1/2" 연산의 변화가 눈에 제일 띄인다. 대세는 유니코드라고 하니 유니코드는 일종의 당연한듯하다.

 그런데 "1/2" 의 결과가 0 이라는 것은 초보 개발자들이 의아해할 만한 것이었는데, 이제 제대로(?) 0.5가 됨으로써 파이썬은 더욱 쉬운(!) 언어가 된 듯하다.

공식 문서에서 파이썬 2.5 에서 파이썬 3.0 으로 소스를 포팅하는 과정은 다음과 같다.

1. 2.6버젼으로 코드를 포팅한다.
2. 2.6에서 -3 옵션으로 코드를 실행해본다. 여기서 발생하는 경고등을 처리해준다.
3. 3.0에 맞게 수정해주는 2to3 이라는 프로그램을 사용한다
.

이 과정에서 항상 가정은 테스트 케이스가 있고, 이것을 통과하는지 체크 잘하라는 것이다. 포팅 과정은 일종의 리팩토링이라 생각할 수 있겠다.

 당장은 2.6 코드를 돌릴 때 -3 옵션을 주도록 하자.



 파이썬은 아직 나에게는, 필요할 때 쓰는 정말 내게는 필요할 때 생각나는 작은 칼 정도의 느낌이다. 지금 주 용도는 ZViewer 에서 다국어 번역이 빠진게 없나, 리소스 파일이 영어, 한국어 나누어져있는데 서로 다른것이 없나 정도를 체크하는 간단한 유닛테스트, 그리고 소스 파일과 설치 파일등의 버젼을 한꺼번에 바꿔주는 정도이다. 원래 스크립트 언어라는 것이 이런 용도에 맞기도 한것 같고, 아직 뭔가 제대로 된 프로그래을 짜려는 엄두가 잘 안나긴 한다. 과연 앞으로 어떻게 나에게 더욱 다가오게 될까 생각해보게 되는 3.0의 발표(!)이다.

Trackback 0 Comment 0

Trackback : http://blog.wimy.com/trackback/219 관련글 쓰기

2006/09/20 09:40

파이썬 스크립트 - python 2.5 정식버젼 릴리즈 기념

http://openlook.org/blog/1123
http://python.org/

파이썬은 내가 지금 있는 라온 엔터테인먼트에 들어오면서 쓰기 시작한 스크립트 언어이다. C++ 을 어느 정도 다루기 시작하고, C# 을 접하기 시작하면서 스크립트 언어의 강점을 한 쪽 귀로 듣고 한 쪽 귀로 흘려버렸었지만, 어느 순간, 그 간단한 사용에 매료되어 사용하기 시작했다. 파이썬은 .py 파일 하나로 코딩과 실행이 가능했던 게 그 이유였던것 같다. 즉, 컴파일이라든지, 프로젝트 파일(컴파일 하기위한)이 없이 하나의 프로그램으로 동작이 가능했던 게 맘에 들었다. 그전에는 C# 의 빠른 프로그래밍이면 충분하다고 생각하던 것이, 조그마한 프로그램들이 많아지면서 관리가 어려워졌던 것이다. 작은 프로그램 짜서 .NET Studio 띄워서, 컴파일해서 실행... 이 과정이 무척이나 귀찮다.

그리고 사실 '스크립트 언어 하나쯤은...' 이라는 생각도 있었던 것 같다. 간단한 프로그램을 짜기 위해서 거대한 프로그램을 띄우는 것도 어찌보면 좀 웃기고, 조엘 온 소프트웨어에서 본 것처럼 '한번쓰고 버리는' 일회용 프로그램을 짜는데는 빠르고, 쉽게 짤 수 있는 스크립트 언어만한 것이 없다고 들었기 때문이었다. 그래서 들은 것은 또 해보고 싶은바 시작한 것이다.

파이썬은 오픈소스로 공개되어 윈도우즈, 리눅스에서 같은 언어로 프로그램을 쉽게 짤 수 있게 하는것도 큰 장점이다. 얼마전 멤버십에서 회원들의 commit log 를 출력해서 메일로 보내는 프로그램을 리눅스에서 간단히 짜게 되었는데 내가 파이썬을 할 줄 안다는 것이 큰 도움이 되었다.

그리고 파이썬은 클래스에 대한 개념만 가지고 있다면 상당히 배우기 쉬운 언어이다. 첫째로 실행시에 에러가 발생하면 바로 에러 난 곳을 찍어준다. 컴파일 기반의 프로그램이 '디버거' 라는 것을 따로 돌려야하는 것에 비하면 디버깅 시간이 훨씬 단축되는 것이다.

또한 막강한 라이브러리가 기본으로 제공된다. 막강한 라이브러리라고 하면 C++, Java, C# 에도 찾기 힘든 것은 거의 없을 것이다. 하지만!! 파이썬은 기본 제공되는 라이브러리가 막강하다. 흔히 예로 드는 http 서비스를 해주는 클래스가 있을 정도이니 말이다. 간단히 배워서 막강하게 쓸 수 있다.

이 파이썬의 2.5 정식 버젼이 얼마전 릴리즈되었다.(주목할만한 점은 openlook 링크 참고)사실 새로운 버젼을 무척이나 환영할 정도로 파이썬을 깊게 쓰고 있는 것은 아니지만;; 일단 반가운 마음에 포스팅을 해본다. 개인적인 바램이 있다면 파이썬 GUI 를 쉽게 짜게 도와주는 Visual Studio .NET 의 GUI Designer 같은게 나왔으면 하는 작은(?) 바램을 해본다 :)

Trackback 0 Comment 1

Trackback : http://blog.wimy.com/trackback/59 관련글 쓰기

  1. Favicon of http://madchick.egloos.com BlogIcon 미친병아리 2006/10/16 00:06 address edit & del reply

    새 버젼이 나왔나보군요..