답변:
import sys
print(sys.argv)
보다 구체적으로는, 당신이 실행하는 경우 python example.py one two three
:
>>> import sys
>>> print(sys.argv)
['example.py', 'one', 'two', 'three']
import sys
sys.argv[1:]
인수 목록을 제공합니다 (파이썬 파일 이름 제외)
[1:]
뜻입니까?
[1:]
위쪽으로 가져옵니다. 첫 번째 인수 sys.argv
는 기본적으로 예를 들어 실행중인 python 파일의 이름 이기 때문 testrun.py
입니다.
argparse
Python 2.7 이상과 함께 제공되는 것이 좋습니다 .
이 argparse
모듈은 보일러 플레이트 코드를 줄이고 코드를 더욱 강력하게 만듭니다. 모듈은 모든 표준 유스 케이스 (하위 명령 포함)를 처리하고 사용자를위한 도움말 및 사용법을 생성하며 사용자 입력을 확인 및 위생 처리합니다. sys.argv
접근 방식 을 사용 하고 있습니다. 그리고 그것은 무료입니다 (내장).
여기 작은 예가 있습니다 :
import argparse
parser = argparse.ArgumentParser("simple_example")
parser.add_argument("counter", help="An integer will be increased by 1 and printed.", type=int)
args = parser.parse_args()
print(args.counter + 1)
그리고 출력 python prog.py -h
usage: simple_example [-h] counter
positional arguments:
counter counter will be increased by 1 and printed.
optional arguments:
-h, --help show this help message and exit
그리고 python prog.py 1
당신이 기대 한대로 :
2
parser.add_argument('var3', nargs='?', type=int, default=3)
var3은 선택적 매개 변수입니다. 명령 행에 값을 지정하지 않으면 코드에서 var3에 액세스 할 수 있습니다 (var3의 기본값). = 3
내가 생각할 수있는 몇 가지 추가 사항.
@allsyed가 말했듯이 sys.argv는 구성 요소 목록 (프로그램 이름 포함)을 제공하므로 명령 줄을 통과하는 요소 수를 알고 싶다면 len ()을 사용하여 결정할 수 있습니다. 이를 기반으로 사용자가 특정 수의 매개 변수를 전달하지 않은 경우 예외 / 오류 메시지를 설계 할 수 있습니다.
또한 명령 줄 인수를 처리하는 더 좋은 방법을 찾고 있다면 https://docs.python.org/2/howto/argparse.html 을 참조하십시오.