PyOpenGL 3
ファイル入出力
ファイル入出力に使用するメソッドは以下の通りです。
- open(ファイル名, モード)
- ファイル名のファイルをモードにしたがって開いて、ファイル記述子を返します。
- 'r'
- 読み込み専用
- 'w'
- 書き込み専用
- 'a'
- ファイルの末尾に追加
- 'r+'
- 更新(読み取りと書き込み)
- 'w+'
- ファイルを空にして、そのファイルを読み書き用に開く
- 'a+'
- ファイルを読み書き用に開いて、ファイルの末尾に追加
- 'b'
- ファイルをバイナリモードで開く
(他のオプションと一緒に使用)
- read()
- ファイルのデータをすべて読み込みます。
返り値は、文字列です。
- write(s)
- 文字列 s をファイルに書き込みます。
- readlines()
- ファイルのすべての行を読み込んで、リストにして返します。
- readline()
- ファイルの 1 行を読み込んで文字列で返します。
- close()
- ファイルを閉じます。
ファイル入出力の例
スクリプト起動時に、コマンドライン引数で指定されたファイルから、
1 行づつ読み込んで処理をするスクリプトです。
- 以下のスクリプトを、cat.py というファイル名で保存します。
import sys
fp = open(sys.argv[1], 'r')
for line in fp.readlines():
print line
fp.close()
- 以下の様に実行するとファイル tmp.txt の内容が表示されます。
# python cat.py tmp.txt
スクリプト解説
import sys
- sys モジュールをインポートします。
コマンドライン引数を扱うために必要です。
fp = open(sys.argv[1], 'r')
- コマンドライン引数の 1 番目 sys.argv[1] に入っているファイル名を読み込み専用で開きます。
ファイル記述子が fp に代入されます。
for line in fp.readlines():
- fp から 1 行づつ読み込んで line に代入し、for 文を1回づつ実行します。
fp.close()
- fp を閉じます。
練習問題
- 前回の練習問題を参考にして、Maya の Obj ファイルを読み込んで表示できるようにしてみましょう。
読み込むファイル名は、コマンドラインで指定します。
# python objdisplay.py sphere.obj
上図のObjデータ
Obj ファイルフォーマット
#
- # から行末までコメントです。
mtllib マテリアルファイル名
- マテリアルデータを記述したファイル名です。
g グループ名
- グループの名前です。
次のg、またはファイル末尾までが1つのグループです。
グループ名が無いと、全体が一つのグループになります。
usemtl マテリアル名
- このグループが使用するマテリアル名を指定します。
マテリアル名は、マテリアルファイルに記述してあります。
v X Y Z
- 頂点の座標値です。
vt U V
- テクスチャの座標値です。
vn X Y Z
- 法線ベクトルの値です。
f 頂点座標値番号/テクスチャ座標値番号/頂点法線ベクトル番号 ...
- フェイスの情報です。
3つの数値が / を区切りとして並びます。
この3つの数値が、フェイスの数だけ並びます。
各番号は、1 から始まります。
テクスチャ座標値番号と頂点法線ベクトル番号は、省略可能です。
参考
Prev | Next
index | home
abetmhr@gmail.com