YAMAGUCHI::weblog

海水パンツとゴーグルで、巨万の富を築きました。カリブの怪物、フリーアルバイター瞳です。

Python

マルチバイト文字列のエンコード・デコード

動機 自分が書いたコードがマルチバイトに全然対応してなかった。ショック。というわけでunicodeで受け渡しするようにしました。 mixi APIで遊んでみた - YAMAGUCHI::weblog 方法 今回はPython2.5での話をしています。encode()、decode()メソッドを使えばOK…

Python3.0リリース

Python 3.0登場、日本で利用できるレベルへ到達 | エンタープライズ | マイナビニュース でました。上記サイトに書いてあるけど一応転記。 Unicodeへの全面移行を実施。str型はUnicode文字列を表現し、それ以外のデータ/バイナリデータはbytes型で表現する。…

WSSE認証を利用したAtom APIとか

動機 いろんなWeb APIを触ってみようと思った。 できた物 WSSE.py (ファイル前半) WSSE認証 このへんを見ながらちょこちょこと作り始めました。 はてなフォトライフAtomAPIとは - はてなキーワード So-net blog:AtomAPI仕様 送信プロトコル WSSE認証をする…

mixi APIで遊んでみた

動機 Macにはmixiフォトアップローダが無かったり、mixi stationの調子が悪かったりして頭に来たので、スクリプトで同様のアプリケーションを作ってみようと思った。 できた物 WSSE.py (ファイル後半) 使い方 一通りの使い方はこんな感じ。 mc = MixiClien…

minidomを使ってXML解析を行う

動機 PythonはXML関係のパーサが標準ライブラリに複数用意されてます。2.5.2で使えるものだと、Expat, SAX2, DOMなんかがあります。 その中でminidomを使っていたときにはまったのでメモ。 サンプル こんなXMLがあったとして、entryを要素を得たいとします。 …

urllib, urllib2を使ってGET/POST

注意(追記:2013.03.22) もうこの情報は古いので、いまはHTTP系の処理はrequestsを使ったほうがいいです。 Requests: HTTP for Humans — Requests 1.1.0 documentation 動機 Web API使ってるとでてくる使い回しをメモ。 方法 まずはオーソドックスに GET im…

XML-RPCの利用

動機 ウェブサービスを利用する場合XML-RPCを使うことがあるため、使い方を調べてみた。 使い方 Pythonでは2.2で標準ライブラリに加わったxmlrpclibを使えば一瞬でできます。 18.24 xmlrpclib -- XML-RPC クライアントアクセス import xmlrpclib urls = ['ht…

staticmethodとclassmethodの違いでC++的な静的メソッドを考える

動機 C++のようなstaticメソッドを作ろうとしてはまったのでメモ。 参考 [Python] クラスの挙動まとめ #1 - 大カフェイン クラスの挙動まとめ #2 - 大カフェイン Python のクラスメソッド – デコレータ @classmethod, @staticmethod を使って | すぐに忘れる…

readlines(size)が期待通りの動作をしない

404 Not Found ここを参照すると、 readlines([sizehint]) readline() を使ってに到達するまで読み出し、EOF 読み出された行を含むリストを返します。オプションの sizehint 引数が存在すれば、EOFまで読み出す代わりに完全な行を全体で大体 sizehint バイト…

forループでのイディオム

動機 Pythonはfor-loopと言いつつ実際は他言語で言うところのfor-each的な使い方をするのでしばらく使っていないとダメコードを書いてしまう。そのためのメモ。 表現 range()を使って 普通のループとかはこんな感じで。 for i in range(1,10): print i zip()…

ジェネレータを用いた再帰関数に関する考察

相変わらずジェネレータではまってるわけです。今回は自分で実装する際に詰まったところ。 ジェネレータを使って再帰関数を作るというのは、心持ちとしては関数型言語の遅延評価を利用した無限リスト表現なんかと通ずるところがあると勝手に思ってるわけです…

switch-case文に関する考察

いまPythonでshellスクリプトを書いてちょっと勉強をしています。shellコマンドはシンプルなので作るにはいい題材だし、挙動それ自体はいい勉強になるんですよね。で、shellコマンドのオプションを処理するときに、Cとかではgetopt()とか使ったりしますが、…

ジェネレータ

またまたPythonでスクリプトを書いていたときにいままで意識してなかったことに出くわしたのでメモ。 os.walk関数を使って指定したディレクトリ以下のファイル、ディレクトリを表示するようなスクリプトを書いていた際に、os.walkの挙動が気になったので調べ…

exit()はstr

Pythonでちょっとしたスクリプトを書こうと思っていろいろといじってた。で、下記のようなコードを書いたらエラーが出た。 #!/usr/bin/python import sys argvs = sys.argv argc = len(argvs) if argc > 2: exit() else: print argvs[1] これを実行したら ex…

Google App Engine

Google App Engine — Google Developers とりあえずプレビューリリースで先着10000名ってことなんでアカウントだけ作って、適当にデプロイしてみた。 今は開発言語はPythonだけってことらしいけど、むしろそれはありがたいです。まともに書こうと思ったらC/C…

Python 2.6リリース

Python 2.6 Release ようやくPython 2.6がリリースされました。今回個人的にうれしいのは、json系のライブラリが入ったことですかね。いままではsimplejson使ってたりしてWeb APIからのレスポンスを処理してましたが、これで拡張ライブラリ追加しなくてもす…

OpenOffice.orgのマクロ

最近業務でやたらとExcelを使っています。VBAでちょいちょい作業効率を上げようと画策してたら書けるようにはなったんですが、やはり言語をいくつも使うのはいただけません。 OpenOffice.orgではどうなってるのかな、と気になって調べてみたらVBAと多少互換…

Django 1.0リリース

Django | Weblog | Django 1.0 released! ついにDjango1.0がリリースされました。ただ自分としてはTurboGearsにもうちょっとがんばってほしいところです。

2chのAPIをとりあえず使ってみる

動機 なんか「2chの非公式API作ったよー」って記事見つけたんで何となく作ってみた。といってもほんとにデータ取ってくるだけ。 サンプル 2chのAPIをリリースしました - おさんぽブログ import urllib import urllib2 BASE_URL = 'http://www.2chsearch.net/…

Jythonをはじめてみる

動機 なんとなく。Javaの勉強してる同期とまったく同じ条件でやるのはつまらないので、どうせならJavaと一緒にJythonもという横着。 環境 Cygwinでどうするのか知らないけど、とりあえずJythonのページに言ってjarファイルを落とす。執筆時でver2.2.1でした…

最新開発版

Python、Python 3、Jython それぞれ最新開発版登場 | エンタープライズ | マイナビニュース 最近はJythonをやりたくてやりたくてしょうがありません。会社の同期がJavaの勉強始めたから演習問題解くときに一緒にJython版の回答も書いてみようかな。

Cygwinにhabuを入れる。(失敗)

habuをMacOS X Tigerで動かしてみる - YAMAGUCHI::weblog 動機 会社のPCにもhabuを入れて社内イントラにRSSを投稿するスクリプトを作ろうと思った。 設定 Twistedをインストールしようと思ったらエラーが出た。 running build_ext gcc -fno-strict-aliasing …

habuをMacOS X Tigerで動かしてみる

動機 最近イントラでPlaggerを動かそうと思ったんですが、どうせならせっかくPythonやってるんでPython版Plaggerのhabuを動かしてみようかと思います。その練習としてMacで動かしてみます。 habu プロジェクト日本語トップページ - SourceForge.JP 準備 自分…

Twitter APIを使ってTwitterクローン「しゃべる」をいじる その後

社内イントラでTwitterクローン「しゃべる」をいじってる旨を書きましたが Twitter APIを使ってTwitterクローン「しゃべる」をいじる - YAMAGUCHI::weblog どう考えてもTwitter APIに準拠してるはずなのに、なんでうごかねーんだろーなーと思って開発者に連…

py-appscriptでiTunesで再生中の曲を取得する

py-appscript : about まずpy-appscriptをインストールするにはsetuptoolsをインストールする必要があります。Mac OS XだったらPython Eggを使ってインストールするのがいいんでないでしょうか。 setuptools 0.6c11 : Python Package Index あらかじめ自分の…

Twitter APIを使ってTwitterクローン「しゃべる」をいじる

つい最近Twitterいじろうかなと思い始めたら、実は社内イントラでもTwitterクローンの「しゃべる」が立っていることがわかって、早速ユーザ申請して遊び始めた。 しゃべる - 社内 マイクロブログ 社内マイクロブログ『しゃべる』 プロジェクト日本語トップペ…

python-twitterをMacOS X Tigerで動かしてみる

今日は気持ちのよい休日でした。昨日、地下鉄副都心線が開業して、新宿ではセレモニー的なことをしてました。帰宅して気持ちが良かったので、何か久々に遊びたくなったのでとりあえずTwitterに何かしてやろうと思い、python-twitterをいじることにしましたよ…

Python PHRASEBOOK

しばらくアメリカに旅行に行ってました。すごく楽しかったので行って大正解でした。途中立ち寄った本屋で目に付いたので立ち読みしたらなかなか良い本だった。というわけで購入。 Python Phrasebook (Developer's Library)作者: Brad Dayley出版社/メーカー:…

Djangoでmodels.pyを変更したときにDBに反映させる

動機 基本的に思いつきでアプリを作るので,どんどんDBの構造を変えてしまうからいちいちDBクライアントを直接叩くのがめんどくさい. 方法 モデル変更 - Djangoへの片思い日記 コメントに載っていた.svnの最新版(0.97-pre)を使っているとこのコマンドで…

CygwinにPython Image Libraryをインストールする

動機 Djangoでmodels.ImageFieldsを使おうと思ったらvalidateしたときに怒られた. 方法 Windowsにはインストーラがあるみたいだけど,Cygwinなんでtar.gzファイルをゲット. Python Imaging Library (PIL) # wget http://effbot.org/downloads/Imaging-1.1.…