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 に答える