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'錯誤。
  • 使用已解析對象即可訪問傳入參數