Como posso obter um script python para “lembrar” a entrada do usuário?

3

Eu tenho um script que solicita ao usuário o caminho para o diretório desejado

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

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

print user_path

O script tem um diretório "default" se nenhuma entrada for dada. Eu quero que o script "lembre" o diretório digitado pelo usuário. Ou seja, na próxima vez que o script for executado, quero que o caminho padrão seja o caminho inserido pelo último usuário. Isso é possível?

Talvez mais geralmente, haja uma boa referência para escrever ferramentas de linha de comando em python?

    
por Brian Fitzpatrick 10.05.2016 / 19:39

3 respostas

5

Se você estiver mantendo o programa, faça-o armazenar o histórico. Em Python, use a biblioteca readline e faça com que ela armazene um arquivo de histórico .

Se não quiser modificar o programa, você pode usar um wrapper como rlwrap .

rlwrap -H ~/.myprogram.history myprogram
    
por 11.05.2016 / 01:36
3

Para este tipo de coisa, você quer usar um arquivo de configuração de algum tipo. Geralmente, um arquivo de pontos no diretório inicial do usuário é suficiente para esse tipo de coisa.

    
por 10.05.2016 / 20:06
3

Você deve armazenar suas informações em um arquivo, para o qual o local esteja de acordo com o Diretório base do XDG Especificação .

Como o seu material é dados e não config, você deve tentar se a variável de ambiente XDG_DATA_HOME existir e criar um arquivo ou subdiretório específico do utilitário, onde você armazena o arquivo. Se essa variável de ambiente não existir, padrão para ~/.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)
    
por 10.05.2016 / 20:29

Tags