既存のファイルの内容を書き換える(os, shutilモジュール)
GUI画面で定義した変数の値を、ファイルにすでに記録されている値と入れ替える。その場合の文字列処理を次のように行った。
import os import shutil import Util # Utilファイルに新しい変数値を入れておく def RecordVariables(path): filepath = os.path.join(path, 'DEFVAL') #DEFVALに変数を定義してある copypath = os.path.join(path, 'DEFVAL.org') #オリジナルのファイルを保存する shutil.copyfile(filepath, copypath) #ファイルのコピー pfile = open(copypath, 'r') S = pfile.readlines() # ファイルの内容をリストとして取り出す pfile.close() for s in S: if s.find('VAL1') != -1 and s[0] != '#': # コメント行(#)は省く linen = S.index(s) eqindx = s.find('=') # "VAL1 = 値"の形でデータは記録 S[linen] = s[:eqindx+1] + Util.val1 + '\n' # Util.val1が新しい値 pfile = open(filepath, 'w') #書き出すファイルをオープンする pfile.writelines(S) #文字列を書き出す pfile.close()
”変数名=値\n”の形で記録してあるものを読み込んで、”=”以降を新しい値と入れ替えた。
最後に”\n”を加えて、リストSの要素を更新する。