Latest web development tutorials

파이썬 명령 줄 인수

파이썬 명령 줄 인수

파이썬은 명령 행 인수를 얻을 수getopt는 모듈을 제공합니다.

$ python test.py arg1 arg2 arg3

파이썬은 명령 줄 인수를얻기 위해 SYS의sys.argv에 사용할 수 있습니다 :

  • sys.argv에 명령 줄 매개 변수의 목록입니다.

  • LEN (sys.argv에)는 명령 줄 인수의 수입니다.

참고 : sys.argv에 [0] 스크립트의 이름을 나타냅니다.

다음과 같이 test.py 파일의 코드는 다음과 같습니다

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys

print '参数个数为:', len(sys.argv), '个参数。'
print '参数列表:', str(sys.argv)

위의 코드의 구현, 출력은 :

$ python test.py arg1 arg2 arg3
参数个数为: 4 个参数。
参数列表: ['test.py', 'arg1', 'arg2', 'arg3']

getopt는 모듈

getopt는 모듈은 명령 줄 옵션 및 매개 변수를 얻기 위해 사용 전용 처리 모듈 명령 줄 매개 변수입니다 sys.argv에 있습니다. 명령 줄 옵션은 프로그램보다 유연한 매개 변수가 있습니다. (-) 짧은 옵션 모드 지원 및 긴 옵션 모드를 (-).

이 모듈은 두 가지 방법을 제공하고, 예외 핸들러는 명령 줄 인수를 구문 분석 할 수 있습니다.

getopt.getopt 방법

다음과 같이 명령 줄 매개 변수 목록 구문을 구문 분석 getopt.getopt 방법은 다음과 같습니다

getopt.getopt(args, options[, long_options])

메소드 파라미터 :

  • 인수 : 명령 행 인수 목록을 구문 분석합니다.

  • 옵션 : 형식 문자열을 정의하는, 후 대장 옵션(:) 콜론이 옵션을 추가 매개 변수가 없음을 나타냅니다없이이 옵션이 추가 매개 변수가 있어야 함을 나타냅니다.

  • long_options : 목록의형식을정의하고,등호 (=) 후 long_options는이 옵션이 설정되어있는 경우, 추가 매개 변수 또는 추가되지 매개 변수가 있어야한다고 말했다.

  • 이 방법은 값이 두 요소로 구성 리턴 제는(옵션 값) 튜플이다.'-'또는 '-'매개 변수를 두 번째는 그렇지 않은 사람들을 포함하여, 매개 변수의 목록입니다.

또 다른 방법을 설명 여기서 뭘 많이하지 getopt.gnu_getopt된다.


예외 getopt.GetoptError

파라미터 또는 옵션의리스트에서 발견되지 않는 목적하는 파라미터는 예외가 비어 트리거한다.

예외 인수는 오류를 나타내는 문자열입니다.msg 속성에 대한 오류 메시지 관련 옵션 및 옵트.

우리는 우리가 스크립트를 보려면 다른 옵션을 사용하는 동안 당신은, 스크립트 파일 이름 명령에 두 줄을 전달할 수 있습니다, 이러한 스크립트를 작성하자. 다음 스크립트를 사용하여

usage: test.py -i <inputfile> -o <outputfile>

다음과 같이 test.py 파일의 코드는 다음과 같습니다

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys, getopt

def main(argv):
   inputfile = ''
   outputfile = ''
   try:
      opts, args = getopt.getopt(argv,"hi:o:",["ifile=","ofile="])
   except getopt.GetoptError:
      print 'test.py -i <inputfile> -o <outputfile>'
      sys.exit(2)
   for opt, arg in opts:
      if opt == '-h':
         print 'test.py -i <inputfile> -o <outputfile>'
         sys.exit()
      elif opt in ("-i", "--ifile"):
         inputfile = arg
      elif opt in ("-o", "--ofile"):
         outputfile = arg
   print '输入的文件为:', inputfile
   print '输出的文件为:', outputfile

if __name__ == "__main__":
   main(sys.argv[1:])

위의 코드의 구현, 출력은 :

$ python test.py -h
usage: test.py -i <inputfile> -o <outputfile>

$ python test.py -i inputfile -o outputfile
输入的文件为: inputfile
输出的文件为: outputfile