settings.txtはコンパイルされた単一ファイルアプリ内に保存され、アクセスされますが、これは、ファイルがスクリプトと同じディレクトリにある場合、Pyinstallerコンパイルの前に機能します。Pyinstallerアプリはtxtファイルにアクセスしていますが、書き込みはしていません(アプリのコンパイル前に動作します)
pyinstaller script.spec script.py --windowed --onefile
a.datas
としてspecファイルに設定されている:
アプリは、端末からコンパイルさ
a.datas += [(‘settings.txt’,’/path/to/settings.txt’, "DATA”)]
とファイルは、アプリケーション内で適切に読み取られる。
with open(resource_path('settings.txt'), 'r') as f2
ただし、ファイルを上書きしようとしたときにファイルが更新されません:あなたは、Windows上にある場合
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
base_path = os.environ.get("_MEIPASS2", os.path.abspath("."))
return os.path.join(base_path, relative_path)
'f2.write(「更新」)'は、データを失うことを。アプリケーションを終了する前に 'f2.close()'が必要です。 – dsgdfg
'with'を使用するとclose()メソッドが自動的に呼び出されると信じています – Phillip
設定ファイルが空の場合、いいえ! – dsgdfg