如何从一个打算在命令行上运行的脚本调用Python函数

时间:2016-03-27 07:45:54

标签: python-2.7 argparse mxnet

我想从脚本而不是命令行运行此函数。例如,函数是:

def main():
    parser = argparse.ArgumentParser(description='Caffe prototxt to mxnet model parameter converter.\
                    Note that only basic functions are implemented. You are welcomed to contribute to this file.')
    parser.add_argument('caffe_prototxt', help='The prototxt file in Caffe format')
    parser.add_argument('caffe_model', help='The binary model parameter file in Caffe format')
    parser.add_argument('save_model_name', help='The name of the output model prefix')
    args = parser.parse_args()
    ...

我怎么能这样运行呢?

file.main('file_1.csv', 'file_2.csv', 'name')

为什么有人会写一个我只能从命令行运行的函数?感觉不方便。

2 个答案:

答案 0 :(得分:4)

您可以使用import sys sys.argv.extend(['file_1.csv', 'file_2.csv', 'name']) file.main()

{{1}}

答案 1 :(得分:0)

你可能想做一些轻微的重新分解。将argparse内容拉入自己的方法,然后调用main(args),然后使用您的配置实例化您传递到argparse.Namespace()的{​​{1}}。

是的,我同意如果已经用这种方式考虑代码会更好。但人们会以务实的方式编码,以满足他们的迫切需求。