[python] 파이썬에서 명령 행 인수에 어떻게 접근합니까?

파이썬을 사용하여 프로젝트 설정을 만들지 만 명령 줄 인수를 얻는 데 도움이 필요합니다.

나는 이것을 터미널에서 시도했다.

$python myfile.py var1 var2 var3

내 파이썬 파일에서 입력 된 모든 변수를 사용하고 싶습니다.



답변

파이썬 튜토리얼은 그것을 설명합니다 :

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:]

인수 목록을 제공합니다 (파이썬 파일 이름 제외)


답변

argparsePython 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


답변

파이썬 코드 :

import sys

# main
param_1= sys.argv[1]
param_2= sys.argv[2]
param_3= sys.argv[3]
print 'Params=', param_1, param_2, param_3

기도:

$python myfile.py var1 var2 var3

산출:

Params= var1 var2 var3 


답변

sys.argv인수를 목록으로 가져 오는 데 사용할 수 있습니다 .

개별 요소에 액세스해야하는 경우

sys.argv[i]  

여기서 iindex 0는 실행중인 파이썬 파일 이름을 제공합니다. 그 이후의 모든 인덱스는 전달 된 인수입니다.


답변

다음과 같이 호출하면 $ python myfile.py var1 var2 var3

import sys

var1 = sys.argv[1]
var2 = sys.argv[2]
var3 = sys.argv[3]

sys.argv[0]항상 현재 작업 디렉토리 인 배열과 비슷합니다 .


답변

내가 생각할 수있는 몇 가지 추가 사항.

@allsyed가 말했듯이 sys.argv는 구성 요소 목록 (프로그램 이름 포함)을 제공하므로 명령 줄을 통과하는 요소 수를 알고 싶다면 len ()을 사용하여 결정할 수 있습니다. 이를 기반으로 사용자가 특정 수의 매개 변수를 전달하지 않은 경우 예외 / 오류 메시지를 설계 할 수 있습니다.

또한 명령 줄 인수를 처리하는 더 좋은 방법을 찾고 있다면 https://docs.python.org/2/howto/argparse.html참조하십시오.