我正在尝试使用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运行时由于缺少命令而产生错误
答案 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