在脚本中将命令行参数传递给Python函数

时间:2020-08-04 08:47:07

标签: python

我有一个需要命令行参数(带有optparse)的函数,它看起来像这样:

def foo():
    parser = optparse.OptionParser()
    parser.add_option("-i", dest="input")
    parser.add_option("-o", dest="output")
    (options, args) = parser.parse_args()

    do_something(options.input, options.output)
    return

我需要从另一个Python脚本调用此函数。 有人知道如何在不使用os.system('foo -i input_path -o output_path')的情况下将参数传递给它吗?

1 个答案:

答案 0 :(得分:0)

是否可以更改结构以包含函数参数?如果您是从另一个脚本中调用它,它将使其变得更加简单。

def foo(input, output):
    parser = optparse.OptionParser()
    parser.add_option("-i", dest="input")
    parser.add_option("-o", dest="output")
    (options, args) = parser.parse_args()
    if options.input:
        input=options.input
    if options.output:
        output=options.output
    do_something(input, output)
    return

否则,您可以在从其他脚本调用时尝试子进程,因为这样可以使用args