I\'m making a Python program that will parse the fields in some input lines. I\'d like to let the user enter the field separator as an option from the command line. I\'m usi
The callback option is a good way to handle tricky cases:
parser.add_option("-d", "--delimiter", action="callback", type="string",
callback=my_callback, default='\t')
with the corresponding function (to be defined before the parser, then):
def my_callback(option, opt, value, parser):
val = value
if value == '\\t':
val = '\t'
elif value == '\\n':
val = '\n'
parser.values.delimiter = val
You can check this works via the command line: python test.py -f test.txt -d \t (no quote around the \t, they're useless).
It has the advantage of handling the option via the 'optparse' module, not via post-processing the parsing results.