2011-12-08 68 views
1

所以我對python一般都比較陌生,主要是用它來輕鬆地移動文件,而最近我一直在做的是使用raw_input獲取一個名稱作爲目錄名稱變量傳遞。但我說getopt,並認爲它會節省時間和精力,試圖獲得raw_input提示用戶作爲選項的變量。但我找不到任何我想要做的事情的例子。獲取原始輸入作爲選項?

而不是等待它來提示我,我可以輸入meego.py shortname = example,並讓它做它的事情。這件事很容易做到嗎?

這裏就是我有沒有基本

var = raw_input("Shortname=") 

print 'starting: ' + str(var) 

svn_app = svn_root + "/" + var  


shutil.copyfile(riproot + '/images/ApplicationIcon.png', 
      svn_app + '/images/ApplicationIcon.png') 

print 'done: ' + str(var) 

回答

3

如果您的Python> = 2.7,請使用argparse模塊(它是標準庫的一部分)。

如果你有2.3 < = Python < 2.7 install the argparse module

由於Python的未來已經或者已經在使用argparse模塊,因此您可以使用它來代替舊模塊之一(如optparse或getopt)。


import argparse 

parser=argparse.ArgumentParser() 
parser.add_argument('--shortname') 
args=parser.parse_args() 

print 'starting: ' + str(args.shortname) 

可以像這樣使用:

% prog.py --shortname example 
starting: example 
+0

您是不是要找, 「如果你有2.7 __ <__ Python > = 2.3」? –

+0

謝謝,工作完美! – Picard102

+0

@JohnDoe:沒有想過多一點:)(除非你的意思是說這就是它原來的意思?) –

2

相反的getopt的嘗試optionParser其更進化。

from optparse import OptionParser 

if __name__ == __main__: 
    parser = OptionParser() 
    parser.add_option("-f", "--file", dest="filename", 
         help="write report to FILE", metavar="FILE") 
    (optionss, args) = parser.parse_args() 

    if options.filename: 
     move_file(options.filename) 

該模塊還爲您提供了專爲-h--help支持。只需嘗試yourscript.py -h