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

프로그램을 유지 관리하는 경우 기록을 저장하도록 하세요. 파이썬에서는 다음을 사용합니다.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)

관련 정보