2010-08-08 2 views
3

명령 줄을 사용하여 구현할 수 있음을 알고 있지만 적어도 10 개의 변수를 전달해야하며 명령 줄은 이러한 변수가 전달 될 수도 전달되지 않을 수도 있기 때문에 너무 많은 프로그래밍을 의미합니다.python 스크립트에 변수를 전달하는 방법은 무엇입니까?

사실 나는 GUI의 경우 vB의 절반을, 파이썬의 경우 스크립트의 절반을 빌드했습니다. 변수를 Python과 유사하게 키워드 인수 (즉, x = val1, y = val2)에 전달해야합니다. 이것을 달성 할 수있는 방법이 있습니까?

+2

하면 10 명령 행 인수를 전달하는 것은 그렇다고 뭐 하나를 지나치는 것보다 훨씬 더 효과가 있습니까? – relet

+0

@relet 당신을 가져올 수 없습니다. – Shubham

답변

8

파이썬 < 2.7을 사용하는 경우 optparse을 제안합니다. optparse는 더 이상 사용하지 말아야하며 2.7에서 사용해야합니다. argparse

이렇게하면 명명 된 매개 변수를 쉽게 전달할 수 있습니다.

+0

+1이라는 getopt보다 더 강력한 optparse를 언급 한 것입니다. – EOL

1

getopt module을 보셨습니까? 명령 줄 옵션으로 작업하기가 더 쉽습니다. Dive Into Python의 예를 참조하십시오.

Python 2.7 이상에서 작업하는 경우 argparse module을 사용하면 훨씬 쉽게 작업 할 수 있습니다.

+2

사실, argpse' *는 파이썬 <2.7에 사용할 수 있습니다! 이것은 선택 모듈 (http://pypi.python.org/pypi/argparse). – EOL

0

gui 측에서 이러한 변수를 설정하는 python 스크립트를 만드는 방법에 대해 어떻게 생각합니까? 파이썬 앱을 시작할 때이 스크립트를 시작하면 vars가 생깁니다.

Execfile

1

스크립트가 너무 자주 호출되지 않으면, 당신은 구성 파일을 사용할 수 있습니다.

The .ini style is easily readable by ConfigParser

: 당신은 변수의 심각한 금액이있는 경우

[Section_1] 
foo1=1 
foo2=2 
foo3=5 
... 

[Section_2] 
bar1=1 
bar2=2 
bar3=3 
... 

, 그것은 갈 수있는 올바른 방법 일 수 있습니다.

3

VB가있는 창에서 작업 중이므로 IronPython은 하나의 옵션 일 수 있습니다. VB와 IronPython은 .NET을 통해 상호 작용할 수 있기 때문에 어셈블리에서 스크립트를 마무리하고 필요한 인수로 호출하는 함수를 노출 할 수 있습니다.

4

당신이 뭔가 재미를 할 수있는 등,

thepyscript.py "x = 12,y = 'hello world', z = 'jam'" 

같이 스크립트 내에서 호출

구문 분석

는 수행

stuff = arg[1].split(',') 
for item in stuff: 
    exec(item) #or eval(item) depending on how complex you get 
#Exec can be a lot of fun :) In fact with this approach you could potentially 
#send functions to your script. 
#If this is more than you need, then i'd stick w/ arg/optparse 
+0

이것은 아주 쉽고 간단합니다! 감사! – user670186

관련 문제