파이썬을 사용하여 프로젝트 설정을 만들지 만 명령 줄 인수를 얻는 데 도움이 필요합니다.
나는 이것을 터미널에서 시도했다.
$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:]
인수 목록을 제공합니다 (파이썬 파일 이름 제외)
답변
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
답변
파이썬 코드 :
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]
여기서 i
index 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 을 참조하십시오.