extending optionparser to accept multiple comma delimited input for one arg
Peter Otten
__peter__ at web.de
Fri Nov 27 03:33:59 EST 2009
cmptrwhz wrote:
> I have read the manual first of all :). on using optionparser for the
> input of command line arguments and inputs. I understand everything
> there was in the manual except how to extend the parser to accept a
> multiple list of input that is comma delimited....
>
> for example:
>
> ./convertContacts3.py -i a.vcf,b.vcf,c.vcf,d.vcf
>
> I want to be able to allow multiple filenames for one argument
> variable. Here is what I have so far and what I was wondering is how
> do I apply this subclass to the -i option so that it will gather the
> multiple filename inputs?
from optparse import OptionParser, Option
class MyOption (Option):
ACTIONS = Option.ACTIONS + ("extend",)
STORE_ACTIONS = Option.STORE_ACTIONS + ("extend",)
TYPED_ACTIONS = Option.TYPED_ACTIONS + ("extend",)
ALWAYS_TYPED_ACTIONS = Option.ALWAYS_TYPED_ACTIONS + ("extend",)
def take_action(self, action, dest, opt, value, values, parser):
if action == "extend":
lvalue = value.split(",")
values.ensure_value(dest, []).extend(lvalue)
else:
Option.take_action(
self, action, dest, opt, value, values, parser)
parser = OptionParser(option_class=MyOption)
parser.add_option("-i", "--input", action="extend")
options, args = parser.parse_args()
print options
If you had problems understanding the documentation perhaps you can suggest
an improvement.
Peter
More information about the Python-list
mailing list