Mathias Waack wrote: > We've integrated python into a legacy application. Everything works fine (of > course because its python;). There's only one small problem: the > application reads the commandline and consumes all arguments prefixed with > a '-' sign. Thus its not possible to call a python module from the > commandline with a parameter list containing options prefixed by '-' > or '--' signs. Thats not a major problem, but it prevents us from using th > optparse module. Is there a way to change to prefix, so one could use a '+' > (for instance) to mark command line options for optparse?
If your arguments come in a particular order, you could use argparse (http://argparse.python-hosting.com/) to parse them as positional arguments:: >>> parser = argparse.ArgumentParser() >>> parser.add_argument('foo') >>> parser.add_argument('bar', nargs='+') >>> parser.add_argument('baz') >>> parser.parse_args('FOO BAR1 BAR2 BAR3 BAZ'.split()) Namespace(bar=['BAR1', 'BAR2', 'BAR3'], baz='BAZ', foo='FOO') I've also filed a feature request for you asking for options with '+' as a prefix: http://argparse.python-hosting.com/ticket/30 I'll see if I can make some time to implement it, but if you'd like to take a look yourself, I can see '-' being hard-coded in at least: add_argument() _get_optional_kwargs() consume_optional() within _parse_args() _parse_optional() _get_option_prefix_tuples() I guess there ought to be an easy way to customize the prefix characters... Maybe something like:: parser = argparse.ArgumentParser(prefix_chars='+') STeVe -- http://mail.python.org/mailman/listinfo/python-list