繁体   English   中英

来自方法调用的python optparse?

[英]Python optparse from method call?

我有两个具有以下结构的python脚本:

# Script1.py
from optparse import OptionParser
def main():
    parser = OptionParser()
    parser.add_option("-a", "--add-foobar", action="store_true", help="set foobar true",
        dest="foobar", default=False)
    options, args = parser.parse_args()
    print options.foobar

if __name__ == "__main__":
    main()

# Script2.py
from Script1 import main as script1Main
def main():
    script1Main()

有没有办法将命令行参数从脚本2传递到脚本1? 此示例中的脚本1是不可变的,因此必须仅通过optparse进行此操作。

如果您没有将任何参数传递给parse_args ,它将仅使用sys.argv[1:]的值,该值将成为调用Script2.py时传递的任何参数。 Script2.py调用Script1.main的事实并没有改变。

首先,也许使用argparse代替。 您可以处理脚本2中的所有参数,然后将参数句柄传递给脚本1。

# Script1.py
def main(args):
    print args

# Script2.py
import argparse
from Script1 import main as script1Main

def main():
    parser = argparse.ArgumentParser(
    parser.add_option("-a", "--add-foobar", action="store_true", help="set foobar true", default=False)
    args = parser.parse_args()
    script1Main(args)

if __name__ == "__main__":
    main()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM