如何让 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)

相关内容