Pythonスクリプトがユーザー入力を「記憶」させる方法は何ですか?

Pythonスクリプトがユーザー入力を「記憶」させる方法は何ですか?

ユーザーに希望のディレクトリへのパスを尋ねるスクリプトがあります。

default_path =  '/path/to/desired/directory/'

user_path = raw_input("Enter new directory [{0}]: ".format(default_path)) or default_path

print user_path

入力が提供されない場合、スクリプトには「デフォルト」ディレクトリがあります。私はスクリプトがユーザーが入力したディレクトリを「記憶」したいと思います。つまり、次回スクリプトを実行するときにユーザーが最後に入力したパスをデフォルトパスに設定したいと思います。可能ですか?

おそらくより一般的には、Pythonでコマンドラインツールを書くのに良い参考資料がありますか?

答え1

プログラムを維持している場合は、記録を保存してください。 Pythonでは、次を使用します。readlineライブラリを作成して保存する歴史文書

プログラムを変更したくない場合は、ラッパーを使用できます。rlwrap

rlwrap -H ~/.myprogram.history myprogram

答え2

この種の作業には、ある種の構成ファイルを使用する必要があります。通常、ユーザーのホームディレクトリにあるドットファイルであれば、これらの要件に十分です。

答え3

次の場所にあるファイルに情報を保存する必要があります。XDGの基本ディレクトリ仕様

データは構成ではなくデータなので、環境変数がXDG_DATA_HOME存在することを確認し、ファイルが保存されている場所にファイルまたはユーティリティ関連のサブディレクトリを作成する必要があります。この環境変数がない場合、デフォルト値は次のとおりです~/.local/share

base_dir = os.environ.get('XDG_DATA_HOME', 
                  os.path.join(os.environ['HOME'], '.local', 'share'))
util_data_dir = os.path.join(base_dir, util_name)

関連情報