あなたがやりたいことは、Windowsレジストリを使用して解決する方がよいようです-あなたがスクリプトからexeを作成すると述べたので、私はそれを想定しています。
次のスニペットは、レジストリから文字列を読み取ろうとし、見つからない場合 (プログラムの初回起動時など) は、この文字列を作成します。ファイルも混乱もありません...レジストリエントリが横たわっていることを除いて。コンピュータからソフトウェアを削除する場合は、レジストリからもキーを削除する必要があります。また、MyCompany
andMyProgram
およびMy String
指定子をより意味のあるものに変更してください。
詳細については、Python _winreg APIを参照してください。
import _winreg as wr
key_location = r'Software\MyCompany\MyProgram'
try:
key = wr.OpenKey(wr.HKEY_CURRENT_USER, key_location, 0, wr.KEY_ALL_ACCESS)
value = wr.QueryValueEx(key, 'My String')
print('Found value:', value)
except:
print('Creating value.')
key = wr.CreateKey(wr.HKEY_CURRENT_USER, key_location)
wr.SetValueEx(key, 'My String', 0, wr.REG_SZ, 'This is what I want to save!')
wr.CloseKey(key)
_winreg
このモジュールはwinreg
Python 3で呼び出されることに注意してください。