2

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

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')

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

4

2 回答 2

4

您可以使用sys.argv

import sys

sys.argv.extend(['file_1.csv', 'file_2.csv', 'name'])
file.main()
于 2016-03-27T07:55:24.163 回答
0

您可能想要做一些轻微的重构。将argparse这些东西拉到它自己的方法中,然后调用main(args),然后实例化你自己的,你用你的配置argparse.Namespace()传入。main

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

于 2016-11-07T20:42:57.187 回答