命令行参数解析 args4j/OptionParser - Java/Python

1. args4j -- Java

 

public class Args {

	@Option(required = true, name = "-arg1", usage = "arg1, desc")
	private String arg1;
	
	@Option(required = true, name = "-arg2", usage = "arg2, desc")
	private String arg2;

	@Option(required = true, name = "-arg3", usage = "arg3, desc")
	private String arg3;

    getter and setter ......

}

 

private Args parseArgs(String[] args) {
		Args myArgs = new Args();
	    CmdLineParser parser = new CmdLineParser(myArgs);
	    
	    if (args.length > 0 && args[0].trim().equals("-h")) {
	    	System.out.println("Usage descrition. options: ");
	    	parser.printUsage(System.out);
	    	return null;
	    }
	    
	    try {
			parser.parseArgument(args);
		} catch (CmdLineException e) {
			System.out.println(e.getMessage());
			parser.printUsage(System.out);
			myArgs = null;
		}
		
	    return myArgs;
}

 

 

2. OptionParser -- Python

 

from optparse import OptionParser

def get_user_paras():
    try:
        opt = OptionParser()
        opt.add_option('--a',
                dest='aParam',
                type=str,
                help='a parameter.')
        opt.add_option('--b',
                dest='bParam',
                type=str,
                help='b parameter.')
        opt.add_option('--c',
                dest='cParam',
                type=str,
                help='c parameter.')

    	(options, args) = opt.parse_args()
    	is_valid_paras = True
    	error_messages = []
        aParam = options.aParam
        bParam = options.bParam
        cParam = options.cParam
        
        if not aParam:
            error_messages.append("aParam must be set;")
            is_valid_paras = False
        if not bParam:
            error_messages.append("bParam must be set;")
            is_valid_paras = False
        if not cParam:
    	    error_messages.append("cParam must be set;")
    	    is_valid_paras = False

        if is_valid_paras:
            user_paras = {"aParam": aParam, "bParam": bParam, "cParam":cParam}
            return user_paras
        else:
            for error_message in error_messages:
                print(error_message)
                opt.print_help()
                return None

    except Exception as ex:
        print("exception :{0}".format(str(ex)))
        return None

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值