Pythonを使ったファイル読み込み/保存
スクリプトとしてPythonを使っている場合の処理について記載します。
ウィジット使用時も同じ処理を行うことができます。
テキストファイルを読み込み
テキストファイルをファイルダイアログボックスで選択し、内容を1行ずつ表示します。
# ファイルダイアログボックスを表示し、フルパスを取得.
dialog = xshade.create_dialog()
filePath = dialog.ask_path(True, "TEXT(.txt)|txt")
if filePath != "":
# ファイルパスをPythonで理解できるようにUTF-8から変換.
filePath = filePath.decode('utf-8')
try:
# ファイルを開く(テキストファイルとして開く).
f = open(filePath)
# 1行ずつ取り出し.
for lineStr in f:
# 1行の改行コードを取り除く.
lineStr = lineStr.rstrip('\n')
# 1行を表示.
print lineStr
# ファイルを閉じる
f.close()
except Exception as e:
print "読み込みに失敗 : " + str(e)
注意点として、Shade3D内の文字列はすべてUTF-8で扱われます。
Pythonでopenを呼ぶ場合は、ファイルパスを「.decode(‘utf-8’)」としてデコードする必要があります。
読み込むパスが存在しない場合は、try-exceptの例外処理が行われます。
「for lineStr in f:」でファイルからテキストを1行ずつ取り出しています。
最後に「f.close()」でファイルを閉じます。
テキストファイルを保存
# 保存する文字列.
textStr = "item1\nテストデータ\n"
# ファイルダイアログボックスを表示し、保存するフルパスを取得.
dialog = xshade.create_dialog()
filePath = dialog.ask_path(False, "TEXT(.txt)|txt")
if filePath != "":
# ファイルパスをPythonで理解できるようにUTF-8から変換.
filePath = filePath.decode('utf-8')
try:
# ファイルを出力用に開く.
f = open(filePath, mode='w')
# テキストを出力.
f.write(textStr)
# ファイルを閉じる
f.close()
except Exception as e:
print "出力に失敗 : " + str(e)
ファイルを保存用に開く場合は、「f = open(filePath, mode=’w’)」のように第二引数に「mode=’w’」を指定します。
「f.write(‘xxx’)」としてテキストを出力します。改行コードは「\n」で指定します。
最後に「f.close()」でファイルを閉じます。