Python文法

pythonのTemplateで「$」をそのまま使いたい

templateを使うとき、「$」が付いた文字列は常に置換されてしまう。 >>> from string import Template >>> s = Template('$who likes $what') >>> s.substitute(who='tim') Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> s.substitute(who='tim'</module></pyshell#2>…

タプルの作成(要素が1つだけの場合)

t1 = (0,) タプルを定義するとき、"式"ではなく"タプル"であることを明示するため、カンマをつけなくてはいけない。

ファイルのコピー

ファイルをコピーするのに、shutilモジュールを使う。 import shutil shutil.copyfile(file1, file2) これは特に問題なさそう。

サブプロセスの実行(修正する)

昨日、メモしておいた通り、 http://d.hatena.ne.jp/Megumi221/20070824#1187939477 で作成したサブプロセスを実行するための関数を修正する。動作確認の結果、 子プロセスが標準出力へメッセージを書き出すのみであれば、問題なく動作する。 子プロセスがな…

サブプロセスの実行 (デバッグする)

http://d.hatena.ne.jp/Megumi221/20070824#1187939477 で作成したモジュールExecCmd.pyであるが、バグがあるかも。状況があまりはっきりしないが、正常に動作しない場合がある。 エラー出力にwarningメッセージを渡すようなプロセスを実行する場合に、止ま…

別のディレクトリにあるファイルを指定する

別のディレクトリにあるファイルを指定するときに、パスをどう与えればいいのかわからなかったため、戸惑った。メモしておく。 os.path.join(path, ...)os.pathのjoin関数を使って、引数に指定した値を連結してパス名を作る。引数の順番は重要。 (例)カレ…

メニューで"About"を選ぶと特定のURLを開く

特定のウェブページを開くようにしたい。 最初、wx.htmlをimportして実現しようとした。しかしページに繋がったのだが、表示がうまくいかなかった。たぶんまだサイザーの使い方がマスターできていない。 代わりにwebbrowserモジュールをimportする方法で実現…

リスト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('…

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

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

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

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

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

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

文字列のスライシング

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

subprocessクラス、subprocess.Popenをちょっと調べただけ。 小休止。”世界一やさしい問題解決の授業”を読んだ。勉強に行き詰ったときの解決策を見つけるときにも使える方法かも、と思ったので記しておく。世界一やさしい問題解決の授業―自分で考え、行動す…

メソッド一覧を表示する。 >>> from wx import Panel >>> dir(Panel)

文字列フォーマット

文字列が演算対象の場合、%演算子はCのsprintf関数と同じ役割を果たす。 例えば、 >>> "%d %s %d you" % (1, 'spam', 4) '1 spam 4 you' 置換に使用する値が複数の場合には、タプルに入れる。 文字列オブジェクトは変更ができないため、文字列に変更を加えて…

ドキュメンテーション文字列(文章化文字列、docstring)

置かれる位置は、モジュールファイルの先頭部分、あるいは関数、クラスなどの先頭部分、つまり実行可能なコードはすべてドキュメンテーション文字列の後に置かれる。ドキュメンテーション文字列の内容は、__doc__属性に記録される。 特定のクラス中のメソッ…

__name__属性 (初めてのPython 18.3節)

よく理解していなかったコードの最後の部分にある if __name__ == '__main__': という一行について。 まず、__name__ 属性はあらゆるモジュールが必ず持つ属性であり、 そのモジュールがインポートで利用されるか、スタンドアロンプログラムとして実行される…

クラスの勉強

2-2節 ”Pythonとオブジェクト指向”でクラスとインスタンスオブジェクトの勉強。 ちょっと分かった気がした。みんなのPython作者: 柴田淳出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/08/22メディア: 単行本購入: 11人 クリック: 624回この商品…