python argparse模块使用

  • 2019 年 11 月 20 日
  • 筆記

在研究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'错误。
  • 使用已解析对象即可访问传入参数