空白によって分割(最初の項目は、スクリプトの名前です)(sys.argv
)リストにあなたの引数を取得するとすぐ、あなたのスクリプトが実行されると、あなたはつもりだ、ということを覚えておいてください、「あなたはとても初期の文字列を "それ自体"にすることはありません。これを考慮して
は、しかし、あなたはこのような何かを行うことができます:
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:
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
がにつながる実行:ちょうどあなたがscript_A
からそれを使用しているだろう正確な方法func_B
でを使用
$ python ./mod1.py --foo bar1 bar2 --baz 1
Got me some foos: ['bar1', 'bar2']
And a baz: 1
'argparse'はデフォルトで' sys.argv'を解析します。これは呼び出しスタックのどこからでも利用できます。ちょうどそれを直接調べる 'import sys'です。 – hpaulj