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()」でファイルを閉じます。

この記事のタイトルとURLをコピーする
Translate »