命令行参数解析 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

 

 

 

你可能感兴趣的:(Java,Paython,args4j,OptionParser)