2011-04-18 3 views
2

나는 Bash 터미널에서 실행중인 Python 프로그램을 작성 중이다. (이미 Bash를 환경으로 사용하고있다.) 거기에는 사용자에게 파일 시스템에있는 디렉토리를 묻는 약간의 설정 루틴이 있습니다. Python Commandline 스크립트 : 사용자 입력시 파일/디렉토리 자동 완성

print "Input:", 
input = sys.stdin.readline().strip() 

가 지금은 사용자가 기존 파일이나 디렉토리의 이름으로 자신의 입력을 자동으로 완성 할 수 있도록하려면 : 이 내가 입력을 읽는 방법이다. 그렇게하는 가장 좋은 방법은 무엇입니까? 디렉토리/파일을 직접 찾아보고 cmd ( this example처럼) 패키지를 사용해야합니까? 아니면 더 쉬운 "기본 제공"방법이 있습니까?

os.system과 함께 Bash 자동 완성을 사용할 수 있다면 괜찮을 것입니다. 하지만 지금까지 시도한 모든 것은 성공하지 못했습니다. 이것은 내가 뭘하려 :

os.system("read -e -p \"Input:\" INPUT") 

를하지만 이상하다 : 배쉬는 read: 1: Illegal option -e을 불평 간단한 배쉬 스크립트 내부의 명령이 작동하지만. 하지만 완성을 위해 -e 수정자가 필요합니다.

파이썬 콘솔 프로그램에서 파일/디렉토리 이름 자동 완성을 어떻게 할 수 있습니까?

답변

4

readline module을 확인하고 싶습니다. 나는 similar question here이라고 답했으며, 경로의 파일 이름/디렉토리 이름 자동 완성을 수행하는 방법을 보여줍니다. 더 자세한 정보가 필요하면 알려주세요.

+0

당신의 예제는 정확히'complete_extra'에서 필요한 것입니다. 또한 Bash에 의존하지 않는 것이 좋습니다 (별로 중요하지 않지만). 이 스크립트를 내 스크립트에 맞게 조정합니다. 감사! – ifischer