argvを使用するよりも少し良い方法でこれを行うコードがいくつかあります
from optparse import OptionParser
parser = OptionParser()
parser.add_option("-u", "--user", dest="user",
help="Database username")
parser.add_option("-p", "--password", dest="password",
help="Database password")
parser.add_option("-D", "--database", dest="database", default="myDatabase",
help="Database name")
parser.add_option("-e", "--engine", dest="engine", default="mysql",
help="Database engine")
parser.add_option("-H", "--host", dest="host", default="localhost",
help="Database host")
(options, args) = parser.parse_args()
def opt_hash(name):
global options
return getattr(options, name)
options.__getitem__ = opt_hash
metadata.bind = '%(engine)s://%(user)s:%(password)s@%(host)s/%(database)s' % options
opt_hashを使用している部分は少しハックであることに注意してください。OptionParserは通常のハッシュを返さないため、これを使用します。これは、最後の行で使用するバインド文字列を適切にするために本当に必要なものです。