Python

描画した図形をマウスで操作する(7)

PythonのOpenGLライブラリを用いて、3次元図形の描画を行う練習をしている。とりあえずは、次のプロセスに沿っていろいろと機能を試して練習を進める。 なんでもいいので3次元の図形を描画する(practice1.py) 描いた図形をマウスで回転できるようにする(prac…

描画した図形を操作する(6)

PythonのOpenGLライブラリで、図形の描画を行う練習をしている。とりあえずは、以下のプロセスに沿って、いろいろと機能を試して練習を進める。 なんでもいいので3次元の図形を描画する(practice1.py) 描いた図形をマウスで回転できるようにする(practice2mo…

Pythonでネットワークプログラミング(7)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前々回(http://d.hatena.ne.jp/Megumi221/20110414)に作成したクライアント-サーバ型の簡単な計算プログラムでは、サーバ側で長時間かかる計算を外部プロセスとして実…

Pythonでネットワークプログラミング(6)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前回(http://d.hatena.ne.jp/Megumi221/20110414 )までに、外部プロセスとして計算プログラムを実行するクライアント-サーバ型のプログラムを作成した。そのとき、サ…

Pythonでネットワークプログラミング(5)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前回(http://d.hatena.ne.jp/Megumi221/20110412 )までに、クライアント-サーバ型の簡単な計算プログラムを作成した。計算プログラムでは、サーバプログラムは、送…

TIME_WAIT状態にあるコネクションをなんとかして使う

ネットワークプログラムをデバッグのために、何度も繰り返し実行していると、同一のポート番号がすぐには使えなくなり、しばらく待たなければプログラムの実行ができないことが頻繁にある。これは、そのポートによるコネクションがTIME_WAIT状態にあるためで…

Pythonでネットワークプログラミング(4)

TCP/IPプロトコルでのネットワークプログラムをPythonで書くための練習。 今回の検討項目 前回(http://d.hatena.ne.jp/Megumi221/20110409 )はwxPythonでネットワークプログラムをラップした計算プログラムを作成したが、細かい動作の仕様もできるだけ決め…

描画した図形を操作する(5)

PythonのOpenGLライブラリで、図形の描画を行う練習をしている。とりあえずは、以下のプロセスに沿って、いろいろと機能を試して練習を進めていく。 なんでもいいので3次元の図形を描画する(practice1.py) 描いた図形をマウスで回転できるようにする(prac…

 SocketServerモジュールを使ったサーバプログラムの実装

Pythonでのネットワークプログラミングの方法をいろいろと検討している。今回は、「SocketServer」と「asyncore」というキーワードに関して調べてみた。 参考サイト: Python2.6 doc (SocketServer) Python2.6 doc (asyncore) SocketServer - ネットワークサ…

Pythonでネットワークプログラミング(2)

TCP/IPプロトコルでのネットワークプログラミングをPythonで実装することが目標。 今回の検討項目 前回(http://d.hatena.ne.jp/Megumi221/20110310)は、簡単なチャットプログラムを実装してみたが、ここではネットワークプログラムにGUIをラップする方法を検…

Pythonの組込み関数eval

eval関数の使い方。 eval関数は引数の文字列をpythonコードとして評価してくれる。例えば、クラス名と同じ文字列を入れると、クラスオブジェクトを返す。 >>> a = 'MyClass' >>> a >>> 'MyClass' >>> b = eval(a) >>> type(b) >>> <type 'classobj'>これは知らなかった。 一方</type>…

OpenGLライブラリを使う(CとPythonコードの比較)

これまでPythonでOpenGLをどのように使うのか、適当なチュートリアルがなかったのでなかなか理解できないまま、長い時間が経ってしまった。 最近、PyOpenGLを使ったコードをながめていたときに、C言語でOpenGLを使うときの関数をそのまま呼んでいるのに気づ…

Pythonでネットワークプログラミング(1)

UNIXネットワークプログラミング入門作者: 雪田修一出版社/メーカー: 技術評論社発売日: 2003/06/05メディア: 単行本購入: 5人 クリック: 84回この商品を含むブログ (15件) を見る自分のようなネットワークプログラミング初心者には、この本はとても良い。言…

Pythonスクリプトを実行形式のファイルにまとめる(2)

前回、Pythonスクリプトを実行形式のファイルにまとめるでPyInstallerの使い方を検討した。 そのとき、Pythonのスクリプトが他のディレクトリにあるモジュールをimportしているような場合には、specファイルのpathexのモジュールパスを追加すればいい、とい…

PILで画像の変換

PIL(python imaging library)を使って画像の変換をやってみる。 http://www.pythonware.com/library/index.htm ここにチュートリアルやリファレンスがあるので、たいへん学びやすい。 画像ファイルの形式をjpegに変換する まず、画像ファイルの形式をjpegに…

リストのsortは注意が必要だと気づく

0と-1からなるリストがあって、そのリストに-1が含まれる場合には、なんらかの処理を行う必要があるとする。 例えば、flist = [0, -1, 0, 0] のようなリストがある。 最初にやっていたこと。 tmp = flist tmp.sort() if tmp[0] == -1: # -1を含む場合の処理 …

ディレクトリのパスを編集したいとき、どうするか

ディレクトリのパスを取得したあとで、そのパスの一部を入れ替えたり、途中のディレクトリ名を取り出したりしたい。そのときにどうすればいいか。 とりあえず、os.pathのメソッドの挙動をいろいろと試してみる。 hoge$ python Python 2.5.2 (r252:60911, Jan…

リストの要素をカウントする

いくつかの要素からなるリストがある。そのリストの要素は、TrueかFalseの値を持っている。 L = [True, True, False, True, False, ...] このような状況で、全部の要素がTrueであれば次の処理に進めるとする。これをどう書くか、 if L[0] and L[1] and L[2] …

辞書の連結

Pythonで辞書を連結する方法を調べてみると、updateメソッドが使えるということが分かった。 使い方:(http://www.pythonweb.jp/tutorial/dictionary/index5.html) なるほど。あれはそういうことだったのか、と思い当たる。 あれ→「開発のプロが教える標準…

datetimeモジュールのテスト

現在の時刻と日時を表示するために、datetimeモジュールを使ったテストコードを書く。下のように。動作確認をやりたかっただけ。 from datetime import datetime now = datetime.now() print now.strftime("%y%m%d%H%M%S") これに、datetime.pyというファイ…

リスト同士の演算

普段やらないことを、たまにやろうとしても思い出せない。 実数のリスト同士の引き算をやりたいだけなのに。 a = [1.2, 1.5] b = [0.2, 0.8] x = [a[i]-b[i] for i in range(len(a))] print x 実行結果 > python cal.py > [1.0, 0.69999999999999996]

gettextで日本語化の検討(4)

Linux上で日本語化したアプリを、Windowsに持っていったときに起動すると、UnicodeDecodeErrorになってしまい、日本語版が起動できない問題を検討する。 UnicodeDecodeErrorというのは面倒なので、Windowsで起動する英語表示のアプリを、Windowsで.moファイ…

zipimport

http://www.python.jp/doc/2.3.5/lib/node133.html zipimportなんてのもあるのだな。

gettextで日本語化の検討(3)

複数ファイルからなるソースコードを日本語化する場合の方法。 xgettextでmessages.poファイルを作成するときに、引数で必要なファイルをすべて指定すればうまくいく。 (例)以下の3つのソースファイルからなるプログラムの場合 # file-name: progress.py im…

gettextで日本語化の検討(2)

昨日の、日本語表示はされるが英語表示に戻せなくなる問題。 http://d.hatena.ne.jp/gymno/20090420/1240245430 http://wiki.wxpython.org/Internationalization#Example_1 ↑この通りにやれば、ちゃんと日本語表示される。Linuxで動作確認できた。moファイル…

gettextで日本語化の検討(1)

gettextを用いて、wxPythonで作る画面を日本語化したい。 まず、Linuxでやってみる。例えば、プログレスバーを表示するだけの例なのだが、下記のソースがある。ファイル名はprogress.pyとする。 import wx if __name__ == "__main__": app = wx.PySimpleApp(…

15パズルのアプリをGAEで作ってみた

Webアプリケーションを作るために、Google App Engineを使ってみた。手始めに、15パズルのサイトを作成してみた。 公開URL:http://15puzzles.appspot.com/ こんな画面。 ほとんど静的ファイルのみを表示しているだけなので、Webアプリと呼べるようなもので…

Pythonのコードを実行形式ファイルにまとめる

pythonで書いた複数のファイルで構成されるアプリケーションを一つの実行形式ファイルとしたい。 ずっと前に、py2exeやbbfreezeを検討してみたが、最近知ったPyInstallerは非常に使いやすいように感じる。ユーザが設定することが少ないのでよい。Windows、Li…

コマンドライン引数をどう処理するか(3つの方法)

コマンドライン引数の処理の方法を調べる。3つ方法がある(sys.argvを使うか、getoptを使うか、またはoptparseを使うか)。 使い捨てのスクリプトでは、基本的なsys.argvで済まし、凝ったソフトウェアでは、optparseで実装するのがきれいにコードが書けるの…

stringモジュールのTemplateクラスの実行テスト

あるファイルの特定の部分だけが異なるアスキーファイルを、いくつか作りたい。その場合、テンプレート機能を使うと作業が楽になる。 PythonのstringモジュールにはTemplateクラスがあり、この文字列の置き変えが自動的にできるため、Tempalteクラスを使うこ…