2007-08-01から1ヶ月間の記事一覧

 ビルドしてインストール

Linuxの共有マシンでwxPythonが使えないと不便であるので、いまさらながらインストールすることにした。なにせ共有マシンであるので、ローカルにインストールすることが前提(rootには頼みづらい)。自動的にインストールしてくれるWindowsと違って、ビルド…

アプリケーションの起動時に画像を表示する

wxPythonのデモを起動すると、画面の中央に数秒間ロゴが表示される。それと同じものを自分のコードの中でもやろうとして、demo/Main.pyからその部分を適当に取り出してきた。作成したのが、以下のOpenLogo.py。写真のように表示できた。 なんか、ShowMainの…

リストLの要素Xのオフセットを求める

昨日のコードprocess03.pyを改良。 以下のように、リストLの要素sのオフセット値を得るためにipointという変数を使っていた。 ipoint = -1 # find a line including variable definitions for s in L: ipoint +=1 if s.find('PARAMETER') != -1 and s.find('…

エラー終了した場合の再コンパイル(その1)

プログラムを実行したときに、プログラム中に定義した変数の値が不適切なためエラー終了することがある。その場合に、変数に値を適切なものに書き換えてプログラムの再コンパイルを行いたい。コンパイル終了後には再びプログラムを実行しなおす。 これら一連…

ログファイルを選択してその内容を指定した位置に表示する(その3)

(その2)ではファイルの内容をうまく表示できていなかった。春風はるかさんのコメントに従って早速修正。MenuExec4.pyを次のようにした。 import wx import os wildcard = "Log files (*.log)|*.log|" \ "All files (*.*)|*.*" class MyApp(wx.PySimpleApp…

ログファイルを選択してその内容を指定した位置に表示する(その2)

前回は、ファイルダイアログを開いてファイルを選択するところまで。今回はTextCtrlでその内容を表示する(MenuExec2.pyを修正してMenuExec3.pyとする)。MenuExec3.pyは以下の通り。 import wx import os wildcard = "Log files (*.log)|*.log|" \ "All fil…

ログファイルを選択して指定する位置に表示する(MenuExec2.py)

期待する動作: 想定しているコマンドの実行結果は標準でログファイルへ書き出される。なので、ログファイルの中身を確認できるようにする。メニューから"Show log"を選ぶとファイル選択画面が表示される。そこでログファイルを選択して開くと、ファイルの中…

popen2モジュールを使ったサブプロセスの実行(実行時刻を表示)

先日作成したcmd_wrapper2.pyの中のサブプロセスを実行する部分をモジュール化した。 さらに、プロセスの開始と終了時にそれぞれの時刻を表示する(time.ctime)ようにする。以下、そのモジュール ExecCmd.pyを示す。 #!/usr/bin/env python """ Program name:…

メニューからスクリプトを実行する(その1)

ここしばらく、サブプロセスを実行するためのスクリプトを書く方に集中していたので、wxPythonから離れていた。しばらくは入り組んだ処理をスクリプトで自動的に行う作業をやらなくてはいけない。順番としてはその後で、GUIを作成することになる。でもwxPyth…

popen2モジュールを使ったサブプロセスの実行(エラー出力がある場合)

今回もpopen2.popen3(cmd)でサブプロセスを実行する。昨日のcmd_wrapper.pyで実行したコマンドでは、標準出力だけに結果を吐き出していたが、今回は標準エラー出力にも結果(エラーメッセージ)を出力するコマンドを実行する。cmd_wrapper.pyでそのまま実行…

popen2モジュールを使ったサブプロセスの実行

サブプロセスを実行するコード(cmd_wrapper.py)を作成した。あるコマンドCMDNAMEを実行するとする。このコマンドはある複数の入力パラメータを読み込んで、その実行結果を標準出力に吐き出すもの。入力パラメータの最小限のものを引数で与えるようにし、次…

文字列のスライシング

文字列はシーケンスなのでスライシングで分解できる。例えば、 >>> S = "AsdfgHj" >>> S[:-1], S[-1:] ('AsdfgH', 'j')である。以上、メモ。

クラスを分ける

TimeFlies2.pyでは、一つのクラスの中でフレームを設定したりメソッドを定義してきた。それだと大規模なアプリケーションでは対応できないので、今のうちにクラスを分ける練習をする。http://www.harukaze.net/~haruka/wxpython/wxpy10.html#10-1 を参考に(…

シェルソート

挿入ソートのコードを改良してシェルソートのコードを作成した。 正しく動作することは確認したが、自分にとっては実装するには複雑すぎてコードを見ただけでは正しいかどうか判断が難しい。アルゴリズムとしては明快なのであるが...。try and errorでようや…

py2exeでフローズンバイナリを作成する

昨日のTimeFlies2.pyを配布できる形に変換したい。 そこで、py2exeを使ってPythonプログラムのフローズンバイナリを作ってみる。 py2exeの使い方は、いろいろな人が解説してくれている。 http://python.matrix.jp/modules/py2exe.html http://ymasuda.jp/pyt…

デザイニング・インターフェース

良さそうな本を見つけたのでメモしておく。高いのですぐ購入というわけにはいかないが、いろんな意味で興味深い。これからやろうとしている事を考えるとデザインが素人の自分には必要かも。とりあえず時間があるときに立ち読み。デザイニング・インターフェ…

wxGridBagSizerを使用

昨日やっつけで作ったアプリTimeFlies.pyを改良する。内容はレイアウトの変更とフォントの指定(写真のように変わった)。 wxGridBagSizerを使うことで、複数の列に渡って区画を定義することができた。 だいぶ見た目はきれいになったと思う。 サイザー単独で…

年末まであと何日?を教えてくれるアプリ

サイザーの勉強をしているのであるが、奥が深いのでまだまだ使いこなせない。www.harukaze.netを見ていたのであるが、その勢いで初アプリケーションを作ってみた(アプリというほど完成度は高くないのだが)。 2つ日付を入力してボタンを押すと、日時の差を…

やさしいプログラミング (やさしいシリーズ)作者: 高橋麻奈出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/05/31メディア: 単行本 クリック: 9回この商品を含むブログ (2件) を見る

挿入法

ついでに挿入法も試す。左から順番に比較してゆき、挿入する位置が確定するまで並んでいるデータを右へずらす。 """ insertion sort Aug. 07, 2007 """ data = [15, 23, 3, 56, 22, 9, 1, 3, 20, 11] print data for i in range(1,len(data)): tmp = data[i]…

選択法

バブルソートと似た整列アルゴリズムの選択法も試してみる。正常に動作することを確認。今回はfor文を2回使用した。 """ selection sort ver.1 Aug.07, 2007 """ value = [6,2,4,9,7,1,0,3,8,10,1,5] for i in range(0, len(value)-1): min = i for num in r…

バブルソート

バブルソートを実行するプログラムをPythonで作成する。精錬されればもっとエレガントに書けるのだろうが、とりあえず正常に動作することは確認した。 """ bubble sort ver.1 Aug. 7, 2007 """ height = [178, 175, 173, 165, 179, 155, 182, 177] nmax = le…

単独で動作するコードの基本形

先週のコード(proto1.py)をあれこれいじったのであるが、demoコードを改造するのと違って大部分を自分で書かなければいけない状況になると、エラーの嵐でまともに動くものなどまだ作れない。今回も、wx.TextCtrlの引数の"style=TE_MULTILINE"の"style="を忘…