各种语言处理命令行参数的方法

288 查看

Python

argparse

python2.7/3.2 引入了一个 argparse 的module
https://docs.python.org/2/library/argparse.html
https://docs.python.org/3.5/library/argparse.html

import argparse
# 创建parser
parser = argparse.ArgumentParser(description='Process some integers.')
# 创建参数
# 'integers' -> 没有 - 开头,创建的是 positional argument
# metavar='N' -> 在usage中显示为 N, 而不是 integers
# type=int
# nargs='+' -> 至少一个值
# help='...' -> 帮助信息
parser.add_argument('integers', metavar='N', type=int, nargs='+',
                    help='an integer for the accumulator')
# '--sum' -> 有 - 开头,创建的是 optional argument
# dest='accumulate' -> 最终访问的成员名,默认是sum
# action='store_const' -> 存储const的值
# const=sum -> 空参数是sum
# default=max -> 默认参数是max
parser.add_argument('--sum', dest='accumulate', action='store_const',
                    const=sum, default=max,
                    help='sum the integers (default: find the max)')
# parse参数
parser.parse_args(['--sum', '7', '-1', '42'])

java

Commons CLI

<dependency>
  <groupId>commons-cli</groupId>
  <artifactId>commons-cli</artifactId>
  <version>1.4-SNAPSHOT</version>
</dependency>
// create Options object
Options options = new Options();

// add t option
options.addOption("t", false, "display current time");

// parse options
CommandLineParser parser = new DefaultParser();
CommandLine cmd = parser.parse(options, args);

if(cmd.hasOption("t")) {
    // print the date and time
}
else {
    // print the date
}