2012-08-28 71 views
2

我想在python中使用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中运行时,由于缺少命令而产生并出错。

+1

你想做什么?你读过[那](http://docs.python.org/howto/argparse.html)? –

+0

参数名称通常以“ - ”或“ - ”开头。 – squiguy

回答

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

+0

如何让脚本'python youscript.py arg1 arg 2'工作。这是我真正的问题,我得到的Python不被识别为命令错误 – user1614796

+0

然后,你似乎已经安装在非标准的地方('path'外)的python。你在使用什么操作系统?如果在* NIX上,请尝试'idle'指向的python路径。换句话说,'head $(空闲)'将有一条python编码到第一行的路径。尝试该路径。 – mgilson

0

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

[email protected] 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