extending optionparser to accept multiple comma delimited input for one arg
cmptrwhz
davedartt at gmail.com
Fri Nov 27 00:47:06 EST 2009
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
..........
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)
def main():
usage = "usage: %prog -i<filename>|-p<pathname> -o<filename> -
d<option> -q -v"
version = "%prog v0.3.000 2009-11-25 -
by .........................................."
description = "This program was designed to take the information
within a vcard and export it's contents to a csv file for easy import
into other address book clients."
parser = OptionParser(usage, version, description)
parser.add_option("-i", "--input", action="store", dest="input_file",
default="None", help="Read data from FILENAME (required if no path
specified)")
parser.add_option("-p", "--path", action="store", dest="input_path",
default="None", help="Process all vcards within specified directory
(required if no filename specified)")
parser.add_option("-o", "--output", action="store",
dest="output_file", default="addrs.csv", help="Name of .csv file to
output too (default is addrs.csv)")
parser.add_option("-d", "--delim", action="", dest="delimiter",
default="\t", help="Delimiter to use: comma, semicolon, newline, tab
(default is tab)")
parser.add_option("-q", "--quote", action="store_true", dest="quote",
default=False, help="Double quote the output strings (default is
off)")
parser.add_option("-v", "--verbose", action="store_false",
dest="verbose", default=True, help="Show processing information
(default is on)")
parser.add_option("--trace", action="store_true", dest="trace",
default=False, help="Displays a ton of debugging information.")
(options, args) = parser.parse_args()
..........
More information about the Python-list
mailing list