ファイルをダウンロードしてローカルに保存するスクリプトを書いてみる。ただ保存するだけではつまらないので進捗状況を表示してみよう。
ファイルのダウンロードには urllib モジュールの uriretrieve
関数を使う。
11.4 urllib — URL による任意のリソースへのアクセス
http://www.python.jp/doc/2.4/lib/module-urllib.html
ファイルをダウンロードしてローカルに保存するスクリプトを書いてみる。ただ保存するだけではつまらないので進捗状況を表示してみよう。
ファイルのダウンロードには urllib モジュールの uriretrieve
関数を使う。
11.4 urllib — URL による任意のリソースへのアクセス
http://www.python.jp/doc/2.4/lib/module-urllib.html
スクリプトにバグがあった場合、Python はエラーメッセージを出力して終了することになるが、py2exe で exe 化している場合、そのメッセージは一瞬で消えてしまって読むことが出来ない。そういうときは終了処理を追加して一旦待って貰おう。この用途には atexit
モジュールを使う。
次のようなスクリプトを実行すると勿論エラーで落ちるが、exe 化しているとウィンドウすら表示されないのでメッセージが読めない。
# coding=utf-8 # ゼロ除算エラーになる 1 / 0
そこで、スクリプトの最初に次のような処理を追加する。
# coding=utf-8 import atexit def goodbye(): """ 終了処理 """ raw_input( u"Enter キーを押してください".encode( "cp932" ) ) atexit.register( goodbye ) # ゼロ除算エラーになる 1 / 0
このスクリプトを py2exe で exe 化して実行すると、次のように表示される。
コマンドプロンプトで色付き文字を使うにはこのモジュールがいいみたい。Perl で言うなら Win32::Console::ANSI
(参考)に当たる。
WConio — Windows CONsole I/O for Python
http://newcenturycomputers.net/projects/wconio.html
color.py
# coding=utf-8 from WConio import * # おまじない。元の設定を保存しておく。 old_setting = gettextinfo()[4] & 0x00FF textcolor( GREEN ) print u"これは緑です" textcolor( LIGHTRED ) print u"これは明るい赤です" textbackground( DARKGRAY ) print u"背景を灰色にしました" textattr( old_setting ) print u"元に戻りました" print u"何かキーを押してください" getch()
WConio.textcolor()
で前景色、WConio.background()
で背景色を指定できる。WConio.getch()
を使えば一文字だけ受け付けるプロンプトも作れる。上記リンクには他にもいろいろな関数が紹介されているので使ってみよう。
Python で YAML を扱うためにはサードパーティのモジュールが必要だ。Perl で言う cpan
コマンドに当たるのは easy_install
というものらしい。
easy_installとは
http://morchin.sakura.ne.jp/effective_python/easy_install.html
ブラウザで ez_setup.py
をダウンロードして実行する。
C:\> python ez_setup.py
これで Python をインストールしたフォルダ直下の Scripts
フォルダに easy_install.exe
という実行ファイルが作成される。
Python で YAML を扱うモジュールは PyYAML というのがいいみたい
C:\> D:\Python26\Scripts\easy_install PyYAML
業務で使う簡単なアプリを JScript や Perl を使って作っていたのだが、なんか飽きてきたので Python を始めてみた。まず一番初めにコンソールアプリを作るお勉強。所謂“exe 化”。Perl で言う PAR
(参照 : その1、その2)に当たるものは Python では py2exe らしい。
py2exe モジュールについて
http://python.matrix.jp/modules/py2exe.htmlFrontPage – py2exe.org
http://www.py2exe.org/
「日本語キーボードドライバで英語配列を使う【keyhac 編】」に続いて、keyhac で Sands の設定を行ってみる。
そもそも SandS とは何かというと、親指シフト配列キーボードの特徴のうち、「ホームポジションに手を置いたときに親指の位置にあるキーを修飾キーとして使う」機能だけを通常の JIS(あるいは ASCII)配列のキーボードで実現するものだ。
具体的には、Space キーを Shift キーの代わりとして使うことである。
こんな機能が実現できる。タイプするときにほとんど働いていない親指を使うことで、Shift Control Tab Enter などの打鍵で忙しい小指を休ませることが狙いだ。
ただ、Space キーを押して一定時間(数十~数百ミリ秒)を上記 1. 2. の判定に使うので、単にスペースを入力したいときは僅かに待つことになる。そこは慣れるしかない。
では実際の設定方法を載せておく。……そのまま引用しただけだけども。
keyhac で SandS – Wisteria::Diary
http://d.hatena.ne.jp/mobitan/20081128/1227792452
# config.py from keyhac import * def configure(keymap): keymap_global = keymap.defineWindowKeymap() keymap.replaceKey("Space", "RShift") keymap_global["O-RShift"] = "Space"
「Windows で英語キーボードを使いたい!」では Autohotkey を使って、日本語キーボードドライバを使いながら英語配列にする技を書いた。
今度は keyhac というソフトを見つけたので使ってみた。Autohotkey でうまく動かなかった SandS 1 や、XKeymacs であったいくつかの問題2もこれで解決したっぽい。
まずは手始めに、使っている HHK を日本語キーボードドライバのまま、英語配列化する設定ファイルを書いた。他のキーボードで使う場合はキーコード等をいじる必要があるかもしれない。
Python という言語は初めて使ったけどおもしろいねえ。簡潔で、初級者でも内容がすぐわかるという取っつきやすさは Perl と正反対だ。早速本を買ってきたので少し勉強してみよう。