2

我正在尝试在 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 中运行时,它会由于缺少命令而产生错误

4

2 回答 2

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)。

于 2012-08-28T14:17:23.683 回答
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
于 2012-08-28T14:37:34.437 回答