2016-12-16 13 views
0

커맨드 라인에서 Jython 스크립트를 호출하려고합니다. $ /Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --headless little_jython_script.py매개 변수가있는 터미널에서 Jython 스크립트 실행

나는

import sys 
params = sys.argv[1:] 

다음은 $ /Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --headless jython_script_with_params.py param1 param2 param3 같은으로 스크립트를 호출하여 매개 변수를 사용하는 파이썬의 (따라서 자이 썬의) 기능에 대해 알고.

그러나에 따라 ImageJ에 웹 페이지 http://imagej.net/Script_parameters에이

# @String name 

# A Jython script with parameters. 
# It is the duty of the scripting framework to harvest 
# the 'name' parameter from the user, and then display 
# the 'greeting' output parameter, based on its type. 

print "Hello, " + name + "!" 

질문은 해당 웹 사이트에서 Greeting.py의 예와 유사 자이 썬에서 매개 변수의 사용을 코딩하는 것도 가능합니다 : 어떻게 지정합니까 명령 행에서 name 매개 변수는 $/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --headless Helloworld.py이라고?

답변

0

매개 변수를 사용할 수있는 방법은 호출 명령에 따라 다르며 차이점은 자이 썬 방식의 추가 플래그 --ij2--run입니다.

1. 고전적인 파이썬 방법 sys.argv에와 동시에 sys.argv 또는 # @String 등 작업 중 하나만

$/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --headless JythonScript.py param1 param2

수확에게 고전 파이썬 방법으로 JythonScript.py에 대한 매개 변수를 sys.argv으로, 즉

# @String param1  ### Does NOT work 

import sys 
program_name = sys.argv[0] 
paramvalue1 = sys.argv[1] 
paramvalue2 = sys.argv[2] 

2. 자이 썬 @String # 등으로 특정 방법

$/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --ij2 --headless --run JythonScript_2.py 'param1=value, param2=value'

# @String param1  
# @Long param2 

### See http://imagej.net/Script_parameters#Parameter_types 
### for a complete list of parameter types 

import sys 
check = sys.argv 
#here check is a length 1 list containing en empty string: check ==[''] 

참고 두 쉼표로 구분 param=value쌍 주위 인용 자이 썬 방식 파라미터 걸린다. 작은 따옴표와 큰 따옴표 모두 사용할 수 있습니다. 매개 변수가 하나만있는 경우 생략 할 수 있습니다. 문자열 매개 변수의 경우 다른 종류의 따옴표로 묶으십시오. 또는 문자열이 영숫자 일 때 따옴표를 생략하면 $/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --ij2 --headless --run JythonScript_3.py 'stringparam1="string with ',' and space ", stringparam2=abc123'