python argparse模块使用

在研究TensorFlow代码时发现广泛存在着argparse模块的使用,所以简单地学习下如何使用该模块。

指定参数、可选参数与未解析参数的混合使用

import argparse
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--data_dir',
        type=str,
        help='Directory for storing input data')
    parser.add_argument('integer', type = int, help = 'display an integer')
    FLAGS, unparsed = parser.parse_known_args()
    #args = parser.parse_args()
    if FLAGS.data_dir:
        print(FLAGS.data_dir)
    if FLAGS.integer:
        print(FLAGS.integer)
    if unparsed:
        print(unparsed)
if __name__ == '__main__':
    main()

要点分析

  • 使用argparse.ArgumentParser()增加一个解析器对象
  • 用add_argument()方法增加一个参数,注意参数前加”–”为可选参数,否则为必选参数
  • 使用parse_known_args()方法解析,返回的第一个参数为已解析的对象,第二个为未解析对象. 并且,必须在调用的时候提供unparsed供返回,否则会报 AttributeError: 'tuple' object has no attribute 'op_type'错误。
  • 使用已解析对象即可访问传入参数
0%