2011-11-23 5 views
1

argv을 사용할 때 파일을 인수 (예 : python ex15.py ex15_sample.txt)로 입력해야하고 raw_input을 사용할 때 파일 이름을 입력으로 사용한다는 것을 알고 있습니다.argv 대 raw_input

하지만 파일 이름을 가져 오는 한 가지 방법이 다른 것보다 낫다는 것을 알 수없는 것 같습니다. 왜 누군가가 설명 할 수 있습니까?

+0

"파일 이름을 얻는 한 가지 방법이 다른 것보다 낫지 않은 이유를 알 수없는 것 같습니다." 그게 질문입니까? 코드는별로 중요하지 않습니까? 대화식과 명령 줄 간의 절충에 대해 묻는 중입니까? 그렇다면 코드를 삭제할 수 있습니다. 문제가되지 않아도됩니다. –

답변

6

중요한 기능이 아닌 대화 형 사용자 입력을 일반적으로 피해야하기 때문입니다. 예제에서 : stdin 또는 명령 행에서 읽기는 다른 프로그램을 결합하여 스크립트 등에서 실행할 수 있습니다.

많은 코드를 실행하고 입력 요청이 오기를 기다리는 화면 앞에 앉아 있다고 상상해보십시오. 명령 줄에서 모든 관련 정보를 지정하고 대신 커피 한 잔을 준비하는 것이 낫지 않습니까?

당신이 할 수있는 무엇 :

  • 확인 렌 (ARGV)> 1
  • 그렇다면이 ARGV [1] 파일 이름
  • 그렇지 않은 경우로, 사용자에게 사용하는 경우.

이렇게하면 프로그램에 멋진 기능이 추가됩니다. 명령 줄에 파일 이름을 지정하거나 대화 형 모드로 입력 할 수 있습니다.

이 시도 :

try: 
    fn = argv[1] 

except IndexError: 
    fn = raw_input("filename > ") 
+0

필자는 스크립트에 직접 매개 변수를 쓰고 편집기에서 바로 실행하기를 원하기 때문에 스크립트에 매개 변수가 필요한 경우에도 명령 줄 인터페이스를 사용하지 않습니다. 그렇게하면 "작업중인"버전이 자동으로 저장되고 재사용 또는 수정이 가능합니다. 그러나 그것은 순전히 선호의 문제입니다. – heltonbiker

+0

디렉토리 나 복사 파일을 변경할 때마다'cp' 또는'cd'를 다시 컴파일해야한다고 상상해보십시오. 그리고 나서 여러분은 gcc를 다시 컴파일해야한다는 것을 알았습니다 - 여러분은 끝날 것입니다 : –

+0

@ wal-o-mat 대단히 감사합니다! – 0101amt

2

는 명령 행 인수 입력의 일환으로, 사용자는 시스템 호출을 제출하고 그 프로그램을 중단 할 수있다. 예 : 사용자는 ls 명령을 실행할 수 있습니다. 시스템은 프로그램이 수행해야하는 것에 관계없이 해당 명령을 실행합니다.