私はスキャンした文書を処理するGUIアプリケーションを設計しています。保存/エクスポートする前にスキャンを操作できるため、処理中にスキャンした各ページのデータを一時的に保存する必要があります。
データ量がかなり大きく(通常は圧縮しても100MBを超える)、メモリに保存するのは非現実的です。多数のページをスキャンすることも作業量が多いため、システムを再起動した後でもアプリケーションを再度開くことができ、以前にスキャンしたデータを使用できるようにスキャン結果をディスクの「作業領域」に保存する必要があります。引き続き取引してください。
これは重要ですが、一時的なデータをどこに保存するのかわかりません。
/tmp/
アプリを終了して再開した後もデータを保持する必要があり、再起動した後でもデータを保持する必要があるため、これはお勧めできません。$HOME/.config/appname/
保存された設定データではないため、正確ではありません。$HOME/.local/share/
間違った理由XDG仕様これは、保存されたアイコンなどの項目を上書きして/usr/share/
「グローバル」スキャンに入れないことを意味します/usr/share/
。$HOME/.cache
近いがキャッシュされたデータではなく、100ページをスキャンして削除し、すべてを再スキャンする必要がある場合、ユーザーは非常に迷惑になります。$HOME/.local/lib/appname
どの仕様にも表示されませんが、.local
ユーザーローカル(使用lib
中/var/lib/
)を意味する場合は問題ありません。コンピュータのローカルを意味する場合、ユーザーは高速スキャナを使用してコンピュータにログインし、このアプリケーションでスキャンしてからログアウトし、通常のPCにログインしてアプリケーションを開くことができる必要があるため、適切ではありません。何をスキャンしているかを確認してください。つまり、データはログアウト時にネットワーク全体に保持され、~$HOME/.cache
システム間で共有する必要がないため、$HOME/.local
そうでない可能性があります。わかりません。
それでは、この種のデータを保存するのに最も適した場所の提案がありますか?
編集:明確にするために、これはユーザー固有のデータであり、アプリは通常のユーザーとして実行されるため、入力するのが正確ではない可能性があり/var/
ます。これは、書き込みアクセスがないことを除いて、アプリを実行している複数のユーザーを処理する必要があるためです。一般ユーザー以外。
答え1
私は他の場所からデータをインポートし、2〜7個のデータファイルを処理してCSVファイル、PDFレポート、および(選択した場合)他の多くのレポート形式を生成するGUIアプリケーション(wxPythonを使用)を持っています。ソースデータファイル(保存されるまで)とレポートを$ HOME / Documentsのディレクトリ構造に保存します。これはうまくいきますが、ディレクトリ名を作成するときは注意を払い、qwerty、fred1、abc123などの名前を指定しないようにユーザーに強調する必要があります。
答え2
私はopt
アプリケーション名の下にサブディレクトリを作成し、アプリケーションで使用されている一時ファイルとセカンダリファイルをそのサブディレクトリの下に置いた。