获取原始输入作为选项?
我对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)
2 个回答
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
就可以了。
3
如果你使用的是Python 2.7或更高版本,可以直接使用argparse模块(这个模块是Python自带的)。
如果你的Python版本在2.3到2.7之间,可以安装argparse模块。
因为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