頂頂大名的Guido van Rossum(Python之父)推薦的main寫法:
#!/usr/bin/python import sys import getopt class Usage(Exception): def __init__(self, msg): self.msg = msg def main(argv=None): if argv is None: argv = sys.argv try: try: opts, args = getopt.getopt(argv[1:], "h", ["help"]) except getopt.error, msg: raise Usage(msg) except Usage, err: print >>sys.stderr, err.msg print >>sys.stderr, "for help use --help" return 2 if __name__ == "__main__": sys.exit(main())
getopt模塊用於抽出命令行選項和參數,也就是sys.argv。
命令行選項使得程序的參數更加靈活。支持短選項模式和長選項模式
opts, args = getopt.getopt( sys.argv[1:], shortargs, longargs )
getopt.getopt ( [命令行參數列表], '短選項', [長選項列表] )
>>> import getopt, sys >>> arg = '-a -b -c foo -d bar a1 a2' >>> optlist, args = getopt.getopt( sys.argv[1:], 'abc:d:' ) >>> optlist [('-a', ''), ('-b', ''), ('-c', 'foo'), ('-d', 'bar')] >>> args ['a1', 'a2'] >>> arg = '--condition=foo --testing --output-file abc.def -x a1 a2' >>> optlist, args = getopt.getopt( sys.argv[1:], 'x', ['condition=', 'output-file=', 'testing'] ) >>> optlist [ ('--condition', 'foo'), ('--testing', ''), ('--output-file', 'abc.def'), ('-x','') ] >>> args ['a1', 'a2']
參考http://www.jb51.net/article/50067.htm