銀月の符号

Python 使い見習いの日記・雑記

2009-01-01から1年間の記事一覧

AviUtl を Python から自動操縦する

あじさんの「AviUtlControl」と同じ動作を Python ctypes のみで目指してみる、そんな試み。いや遊び。 4 日前から作っていたが、形になってきたので晒してみる。 PyAviUtlLib(2009/9/20 更新) 名前は…pyaviutl.py 。うーん、考え直したほうがいいかも。 pya…

__new__ の調査便乗

RRF言語研究所さんの『http://d.hatena.ne.jp/rockRicefield/20090915/1253002685』に惹かれて。 Python 暦浅いはずなのにもう __new__ の魔窟へ突入とは。すごいです、友達になってください><そして自分も __new__ について復習してみた。 クラスオブジェ…

AviUtl を Python から自動操縦する、のか?

動画のエンコードの際、世話になっているソフト、 AviUtl。これを Python から操ってみようと思ったのがことの始まり。とはいえ、便利なものがすでに世に存在している。 「AviUtl Control」 。作者であるあじさんに感謝。「AviUtl Control」は AviUtl をコマ…

形態素解析エンジン MeCab 0.98pre3 野良ビルド

MeCab 0.98pre3 の Python バインディングを Windows XP Pro, MinGW, Python 2.5.4 and Python 2.6.2 という環境でコンパイルしてみた。晒してみる。方法は昨年11月の『形態素解析エンジン MeCab 0.97 とその Python バインディングを MinGW でビルドする - …

メモ、 Itertools Recipes

先日はコレの grouper の存在を知っておけば、もしくは体得していれば 10 分どころか 3 分でいけたのに。ということでリンク張っておく。 Python 3.1版(英語) Python 3.0版(英語) Python 2 最新版 (2009/9/7 現在 2.6)(英語) Python 2.5版 この節、地…

4年前の、そして半年前の簡単な問題を10分で解いてみた

寝る前に、ちょっとしたプログラミング問題を見つけたので挑戦してみた。 本日の目玉を先に、一言で 『データ列を長さnのグループにまとめる常套句』があることを知った。衝撃的だった。 問を提示しているサイト 簡単な問があったのでPythonでやってみた - …

Python 2 と Python 3 のユニコード文字列、バイト列の違いメモ

Python 3 の数値をバイト列に変換する方法は bytes([i])*1。いままでとあきらかに違うことを知ったのが発端。 >>> bytes([97]) b'a' ユニコード文字列、バイト列の違いを調査開始。 型の名称とリテラル表記 Python 2.6 は新旧両方の書き方ができるものも。 P…

標準コーデックとバイト列

半年ほど前に『「XOR をとるコーデック」のファクトリ - 銀月の符号』なんて作ったなーというのを思い出して。ふたたび遊んでみようとドキュメントを読んでいたところ Python 3 では標準コーデックの種類が減っているのに気づいた。 2.6の標準コーデック 3.1…

Django と JQuery でフォームの処理

JavaScript 再入門から1週間弱。 JQuery で遊べるところまできた。あるフォームの内容を非同期通信するページを Django と JQuery を用いて作成する手順について自分なりに整理してみる。 Ajax 。 フォーム Django でフォームを扱う方法の一つである django.…

昨日からはじめた JavaScript

『まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法』「第5章 Ajaxについて」を読んだことで JavaScript 再入門してみたくなって、昨日から『JavaScript 第5版』「第1部 コアJavaScript」の読み直しをはじめた。今朝、 8章「関数」と9章…

乱数生成アルゴリズム Xorshift を random.Random のサブクラスとして実装してみた

すごい乱数生成アルゴリズム「xorshift」 - Pashango’s Blog の Python 最高!! につられて。 random.Random を継承する形で Xorshift アルゴリズムを。なぜつくったのかまったくの謎だけど Python 最高!! だからしかたない。メルセンヌ・ツイスタ (Merse…

帰ってきたー

RubyKaigi2009 終了より一日遅れて道東に帰還。き、気温差がでかくて風邪ひきそう…。

旅行準備中

いざ RubyKaigi2009 へ。

無題

自分にできること、できないことを把握しなおし中。実はできるのに断ってしまったり、逆にできないのに安請け合いして痛い目見たりしないために。めざすべきは Win - Win の関係。

RubyKaigi 迫る

RubyKaigi は7/17(金) から。楽しみ。

Python 札幌第3回 Ustream 参加

随時、更新中。…更新終了。 Python関連読書会 13:20〜14:10 13:20 開始、 14:30 終了。Python チュートリアルの「3.1.4 リスト」から「4.6 関数を定義する」まで。あと None について盛り上がったため 20分くらいオーバー。 NULL およびそれに類するものの動…

manage.py コマンドの追加

Python 札幌第3回開催直前、便乗 Django ネタ。第2回未参加なので既出かも。 manage.py にオリジナルのコマンドを追加する方法について。また、 manage.py shell インタラクティブシェルで実験したいけれど長くなりそう、というときの代わりにも使える。「…

温泉へ

温泉に浸かってきた。今日は涼しかったので露天風呂がいい感じ。

気がつけばファイル操作の話に(前記事、ジェネレータをうまく作れるようになりたい)

昨日の続き。ジェネレータ作ってみたメモだったはずなのにファイル操作のメモになってしまって、タイトルどうしたものか。 既存ファイルを上書きしないコピー、ムーブ(POSIX編) たぶんこう。 O_EXCL で open システムコールしてファイルを上書きしない環境…

メモ、Python札幌・第3回勉強会

Python札幌・第3回勉強会 は 7/12(日)。札幌は遠いので Ustream 中継で。あと 13:00 から 18:00 まで 5 時間きっちり張り付けるかどうか未定。Ust 参加でも ATND に参加登録すべきだったっけ?15時ごろ追記: 参加登録してきた。

ジェネレータをうまく作れるようになりたい

今晩の目的、「同名のファイルが存在しても、重ならないファイル名でコピーをする関数」の作成。仮名 copy_safe 。a\spam.txt, b\spam.txt がすでにあるときに、copy_safe(r'a\spam.txt', r'b\spam.txt') すると b\spam(0).txt という名前でコピーするという…

どしゃぶり

朝から晩まで雨、そんな日のこと。 雨降り 一時的にどしゃぶり。室内+ヘッドホン装着+BGM でも余裕で雨音が聞こえるほど。すぐ静まったので降水量はたいしたことなかったのではないかと推測。 Python メモ unittest 家から出られないので Python 、 unitte…

レシピ追加、正規表現を分割して記述する

『073:正規表現を分割して記述する』を追加。 % 演算子の文字列演算で問題なし。 import re regex1 = 'aaa' regex2 = 'bbb' regex = re.compile('%s|%s' % (regex1, regex2)) 味付けは正規表現オブジェクトの pattern 属性で。コンパイル済みのオブジェクト…

レシピ追加、ブロック…そんなものは無いけれども

Python Recipe は『Rubyレシピブック 第2版 268の技』が元ネタなので Python にはない、もしくは Python に不要なものもある。「012:関数の呼び出し制限」、「237:汚染モード(taintモード)を使う」、「155:ワンライナでファイルを更新する」、「015:特異メ…

レシピ追加、Pythonのライブラリローダを制御する

『210:Pythonのライブラリローダを制御する』を追加。sys.path, .pth, PYTHONPATH, sys.moduels など。

レシピ追加、名前がぶつからないファイルを作成

「149:名前がぶつからないファイルを作成」を追加。 os.open に os.O_EXCL を含むフラグを与える。

レシピ追加、Pythonスクリプトをデバッグする

『211:pythonスクリプトをデバッグする』を追加。 pdb デバッガの使い方の例を書いてみた。

Re:数値型判定はどうしたらいいのだろう?

「2009-06-20 - Pythonで遊ぶよ - pythonグループ」の以下のコードを見て。「数値型オブジェクトかを判定する、ただし bool 型は除く」という関数です。 def is_numeric(n): return not isinstance(n,bool) and \ (isinstance(n,int) or isinstance(n,long) …

レシピ追加、標準入出力をファイルにつなぎ換える

『169:標準入出力をファイルにつなぎ換える』を追加。通常用途では sys.stdout などを、望みのファイルに結びついているファイルオブジェクトで置き換える。これで十分。 import sys fo = open('spam.txt', 'w') sys.stdout = fo 本当ににつなぎ換えるには o…

レシピ追加、ユーザやグループに関する情報を得る

手元にある、記事を収めた reStructuredText ファイルの数を数えるとちょうど 100 個。つまり自分が書いた Python Recipe の数が 100 個の大台に乗ったということ。1年半もかかっているので仕事が遅い感は否めないが、飽きずに続けられたのはよかったと思っ…