writing command-line options into file
Brian Blais
bblais at bryant.edu
Mon Mar 14 08:58:25 EDT 2011
On Mar 14, 2011, at 8:13 AM, hiral wrote:
> For following example, how to write command-line option OR metavar
> into file...
>
> parser.add_option("-opt1", metavar="MY_OPTION1", default=123)
> parser.add_option("-opt2", metavar="YOUR_OPTION2" ,default= "abc")
> parser.add_option('-opt3", metavar="FLAG", default=True)
>
> do we have any facility to write command-line option OR 'metavar' into
> file as follow...
>
> output_file:
> MY_OPTION1 123
> YOUR_OPTION2 abc
> FLAG True
>
> OR
> output_file:
> opt1 123
> opt2 abc
> opt3 True
>
Perhaps something like this would work. This loads and saves just the default values. A little more digging could make it more robust, and inclusive. The output file (test.yaml) looks like:
opt1: 123
opt2: abc
opt3: true
from __future__ import with_statement
from optparse import OptionParser
import yaml
class MyOptionParser(OptionParser):
def save(self,fname):
data=self.defaults
with open(fname,'w') as fid:
yaml.dump(data,fid,default_flow_style=False)
def load(self,fname):
data=yaml.load(open(fname))
for option in data:
self.add_option("--"+option,default=data[option])
parser = MyOptionParser()
parser.add_option("--opt1", metavar="MY_OPTION1", default=123)
parser.add_option("--opt2", metavar="YOUR_OPTION2" ,default= "abc")
parser.add_option("--opt3", metavar="FLAG", default=True)
parser.save('test.yaml')
newparser=MyOptionParser()
newparser.load('test.yaml')
bb
--
Brian Blais
bblais at bryant.edu
http://web.bryant.edu/~bblais
http://bblais.blogspot.com/
More information about the Python-list
mailing list