계속 '왜 이렇게 초기 문자열 "당연히"를 얻지는 않을 것입니다. 염두에두고
은, 그러나, 당신이 뭔가를 할 수 있습니다 :
mod1.py :
import sys
from mod2 import foo
if __name__ == "__main__":
foo(sys.argv[1:]) # To remove the script's name, which is always the first argument
그리고
이 같은 파일에 __main__
되세요 다른 모듈 (이 예제에서는 mod2.py
)에서 argparser를 다음과 같이 실행하십시오.
mod2.py : $ python ./mod1.py --foo bar1 bar2 --baz 1
을 실행
import argparse
def make_parser():
parser = argparse.ArgumentParser(description='Process some foos.')
parser.add_argument('--foo', type=str, nargs='+', help='a foo',)
parser.add_argument('--baz', type=str, help='a baz')
return parser
def foo(args):
parser = make_parser()
parsed_args = parser.parse_args(args)
print "Got me some foos: %s" % (parsed_args.foo)
print "And a baz: %s" % (parsed_args.baz)
이 될 것입니다 :
이
$ python ./mod1.py --foo bar1 bar2 --baz 1
Got me some foos: ['bar1', 'bar2']
And a baz: 1
argpsese는 기본적으로'sys.argv'를 구문 분석합니다. 호출 스택의 어느 위치에서나 사용할 수 있습니다. 'import sys'만으로 직접 검사 할 수 있습니다. – hpaulj