Python

HTMLへの展開以外でのテンプレートの使い方

テンプレートシステムは、HTMLの展開以外でも非常に便利なので、一般のファイルに対して使うことを考える。 例えば、以下のアスキーファイルで、0.001と200という数値を状況に応じて書き変えたい場合。 variable 1 is 0.001. variable 2 is 200.テンプレート…

ずれたラベル位置をマニュアル調整

pythonのmatplotlibライブラリで複数の図を並べて描くときに、軸のラベルが隣りの図に被ってしまうことがある。その解決方法。 例えば、何もユーザが指定しなければ、ラベルの位置は自動調整されて適当な場所に決められる。こんな風に...。 この図を描くpyth…

細かい処理あれこれ

文字列がディレクトリパスを表しているかどうか、判定する >>> import os >>> os.path.isdir("/home/user/work") True >>> os.path.isdir("/home/user/temp") Falseos.path.isdir()の引数が存在しないディレクトリの場合は、Falseが返る。 ユーザのhomeディ…

Django試してみる

Webアプリを作るためにDjangoを使ってみることにした。 Pythonでほとんどの実装ができるのが利点。他のフレームワークもいくつか候補としては挙げられるのだろうが、自分のような初心者には日本語の分厚い解説本があるのが安心できる。実績も十分あるようだ…

pythonプログラムの実行OSの判別方法

pythonのプログラムを実行する場合に、実行するOSによって異なる処理をさせたい。 自分が何のOSで実行されているかを、プログラム中で判別できればいいだけなのだが、何かエレガントな書き方(というか定石)があったような気がするが思いつかない。泥臭く、…

Pyjamas事始め

きっかけ WebアプリのクライアントサイドのIFを作るのに、Javascriptで試行錯誤しながら書くよりも、Pythonでできたらうれしいのではないかと思い、google検索したら最初にPyjamasを見つけた。PythonのコードをJavascriptコードに変換してくれる、コンパイラ…

PEP8 (Style Guide for Python Code)

Pythonのコードを書くときに、変数や関数の命名規則をどうするのがいいのか迷ったので、基本に帰って、PEP8 (Style Guide for Python Code)を読んでみる。短い文献ではあるが、命名規則の他にいろいろと発見があった。 1行の最大長さ すべての行の最大長さ…

今日もクラッシュ

クラッシュしてしまう。完全に自分の書き方が悪いのだけど。原因は分かっているのだけれど、どう直すべきか。 (python2.6:24885): Gdk-CRITICAL **: gdk_window_invalidate_maybe_recurse: assertion `window != NULL' failed The program 'python2.6' recei…

 エキスパートPythonプログラミング

エキスパートPythonプログラミングTarek Ziade 稲田 直哉 アスキー・メディアワークス 2010-05-28売り上げランキング : 3297おすすめ平均 Pythonハッカーになるために必要な事を網羅的に紹介した本Amazonで詳しく見る by G-Tools大規模コードをきれいに書き…

reduceとoperator.add

昔書いたコードの一部で、 import operator ... fnum = reduce(operator.add, listp) とやっていた。なぜこんなふうに書いたのか思い出せない。 fnum = sum(listp) と同じだよな。

MayaviをPythonのスクリプトで起動したい(2)

streamlineを描くときの設定が不明な点が多い。ドキュメントが少なすぎるのだけど。ソースが最良のドキュメントか...。 こんな感じの雛型を使って実際に描いてみる。 from enthought.mayavi.scripts import mayavi2 from enthought.mayavi.sources.vtk_file_…

MayaviをPythonのスクリプトで起動したい

Example gallery API referenceとかを参考にいろいろ検討中。 Cookbook/MayaVi/Examples/のcontour.pyというスクリプト。Windowsにおいて、スクリプトをこのままで実行すると、 NameError: global name 'mayavi' is not definedとなる。なので次のように数行…

pythonxyのインストールその後(2)

http://d.hatena.ne.jp/Megumi221/20100323 のつづき。あいかわらず使い続けているが、さらに問題発生。 __file__が未定義 print __file__ とするとNameErrorになる。Python26のはずなのに...。代わりに print sys.argv[0] とするしかない。

pythonxyのインストールその後

IDLEの使用に慣れていたのでIPythonはちょっと使いにくい。とは言ってもIDLEもそのまま使えるが。pythonxyが必ずしも原因というわけではないのだが、いくつか問題が発生。 足りないファイル py2exeをインストールして使おうとしたら、”msvcp90.dllファイルが…

Python26のアンインストールとpythonxyのインストール

mayaviモジュールの問題が、試行錯誤したが解決できそうにないので、pythonxy(http://www.pythonxy.com/)をインストールして使うことにした。 既存のPython26をそのまま残してpythonxyをインストールしたら、あらゆるものが動作しなくなったので、散々迷った…

ipythonのインストール

ipythonをインストールした。 http://ipython.scipy.org/moin/Download 機能が大幅に増えたpythonシェルというところか。scipyやmatplotlibを使う上で何が便利なのか、まだよく分からない。きちんとしたマニュアルがあるので期待できる。

yamlファイルを扱う

Pythonでyamlファイルの読み書きを行う。 参考:http://gihyo.jp/dev/serial/01/yaml_library/0003?page=1 まずは、PyYAMLモジュールをインストールしてみた。使ってみる。 こんな風に記述されているyamlファイル(test.yaml)。 Event: Obj1: Data: 2010/033…

Pythonからmayaviを使う

Pythonでmayavi(読み方は、まやびぃ)を使いたい。実行環境、Windows XP。すでにvtkがインストールされていることが前提条件(PythonからVTKを使うための準備)。 mayaviのバイナリをダウンロードしてインストールしても、mayaviをモジュールとしてimportす…

PythonからVTKを使うための準備

Pythonでvtk(Visualization Toolkit)を使いたい。実行環境、Windows XP。とりあえず、「import vtk」ができる状態までもっていく。すでにPython2.6がインストールされていることが前提条件。 バイナリのダウンロード http://cpbotha.net/2009/08/13/python-2…

ファイルに行番号を書き込むツールを作ってみる

ソースコードをWordのファイルか何かにコピーする場合に、行番号を表示させて貼り付けたい場合がある。普段はTeraPadを使っているので調べてみると、TeraPadの場合にはAddNumというアドオンでその機能を実現できる。http://www3.wind.ne.jp/enable/soft/ htt…

コマンドプロンプトのカレントフォルダ

Windowsでコマンドプロンプトを起動すると、起動直後のカレントフォルダは「\Documents and Setting\(ユーザー名)」になっている。特定のフォルダへ移動したい場合は、cdコマンドで移動しなければならない。いちいちcdでフォルダを変更することなく、起動直…

pyhdf

HDF(Hierarchical Data Format)は、階層型データ構造を持つファイルフォーマット。科学技術のデータを扱うのによく使われるらしい。でも馴染みが無い。現在リリースされているバージョンHDF4(HDF Release 4)とHDF5(HDF Release 5)のフォーマットは完全に異な…

py2exeの設定ファイル

http://d.hatena.ne.jp/Megumi221/20100220 py2exeやbbfreezeでプログラムをフローズンバイナリにするとき、ソースが複数のディレクトリに分けられているときの設定を調べる。:いくつかのソースファイルを複数のディレクトリに置いたときに、トップレベルデ…

 pickleモジュール(オブジェクトの文字列化)

データをまとめてファイルに記録しておいて、後でその値を更新したり、必要ならば削除する必要がある。 この場合、データ構造は辞書で扱うことにすれば便利なのでそうしようとしたが、ファイルに書き込むとき悩んでしまった。 文字列にしないと書き込めない…

ディレクトリやファイルのコピー、あれこれ

あるディレクトリのコピーを作成する場合、どうやるのが一番いいのか検討。できるかどうかは別にして、考えられる処理手順としては、 新しいディレクトリを作成後、元のディレクトリ内のファイルをすべてコピーする ディレクトリを直接コピーして、新しいデ…

hashlibでハッシュ値を生成

mpiの実装系の一つであるMPICH2を使って並列計算を行うときに、計算開始時にmpdlib.pyというスクリプトが実行されているようだ。MPICH2の中身を確認したことはないので、このPythonスクリプトが何をしているのかは現時点では分からないし、今は考えない。 こ…

子プロセスのkill

subprocess.Popenで実行したプロセスを中断するにはどうするか? とりあえず検索したものをメモしておく。後で要検討。 子プロセス以下をすべてkillしたい 自然終了しないプロセスをkillできない ←えっ!!大問題。

 可及的速やかにやることリスト

やらなければいけないことリスト wxPythonで、gettextを使って日本語と英語の表示の切り替えの方法を調べる:テストコードを書いてみたがうまく動かない。根本的に何かを間違えている。コードの中でフラグを立てて、日本語と英語を使い分ける方法を取るのは…

今日の使い捨てスクリプト(バンド幅を求める)

#!/bin/env python import sys fileName = sys.argv[1] fmtx = open(fileName, 'r') dmax = 0 for i in fmtx.readlines(): if i[0] != '%': (cnum, lnum, val) = i.split() dval = int(cnum) - int(lnum) if dval > dmax: dmax = dval print 'value = %d\n' …

今日のスクリプト(列の入れ替え)

使い捨て。ファイルの1列目と2列目を入れ替えるだけ。 http://d.hatena.ne.jp/Megumi221/20100203 で教えていただいたように安易にリスト化をしないようにした。変な癖をつけないためにも日頃から意識することが重要だな。 #!/bin/env python FILE1 = "old.m…