2012-08-28 73 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