了解python的argparse模块

时间:2012-08-28 14:13:49

标签: python command-line arguments argparse

我正在尝试使用python中的argparse,我不知道如何在命令行调用该程序以查看它是否有效。

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("DocID", type= int, help= "Insert DocID Here")
parser.add_argument("echo", help = "Enter in the FileName to be read")
args = parser.parse_args()
print args

这是我非常基本的程序,我试图用它来了解更多关于argparse的工作原理。我只需要学习如何以及在何处调用该程序以便能够使用我给它的参数。

编辑:让我的问题更清楚抱歉。我有这个代码,但我不知道如何将程序作为一个整体调用,以便我可以运行它。就像我如何在命令行中运行它?因为在IDLE运行时由于缺少命令而产生错误

2 个答案:

答案 0 :(得分:4)

ArgumentParser的parse_args方法可以将列表作为输入。该列表用于解析命令行参数。所以,一个常见的习语是:

args = parser.parse_args('-a -b -c --value=True'.split())

因为str.split返回一个列表。 ('a b c'.split() == ['a', 'b', 'c']


通常在添加参数时,您可以这样做:

parser.add_argument('-a', '--a-long-name', type=int, ...)

前面没有---的参数是位置参数,因此两个参数都是位置参数。如果你这样做,你可以看到一些正在发生的事情:

args = parser.parse_args(['1','foo'])
print args.DocID # 1
print args.echo  # foo

与将脚本调用为python youscript.py 1 foo(没有parse_args内的列表)相同。

答案 1 :(得分:0)

如果你想知道脚本的命令行语法...只需用--help调用它,argparse会自动为你提供它。

⚫  gbin@sal tmp % python test.py --help
usage: test.py [-h] DocID echo

positional arguments:
  DocID       Insert DocID Here
  echo        Enter in the FileName to be read

optional arguments:
  -h, --help  show this help message and exit