[python] Hratky s optparse.

slush slush na centrum.cz
Sobota Červen 21 08:52:20 CEST 2008


Zdravim,

prime reseni tveho problemu jsem nenasel, kazdopadne prikladam kostru snad
dostatecneho reseni - rozsiril jsem metodu add_options tridy OptionGroup,
ktera zaregistruje (v tomto priklade jen vytiskne) prikaz a dal postoupi
argumenty puvodni metode add_option(). Fantazii k dalsi implementaci
ponechavam ciste na Vas. Argumenty si lze pamatovat v nejakem listu nebo
jine strukture pro pozdejsi volani apod.

Stejnym zpusobem lze rozsirit i OptionParser, odkud (pretizeni konstruktoru)
jde ziskavat treba informace o --version. Kazdopadne vhodnost takoveho
rozsirovani je diskutabilni, asi zalezi na tom, co presne od toho ocekavate.

Marek

On Fri, Jun 20, 2008 at 5:55 PM, David Michal <dmichal na altien.com> wrote:

>  Zdravim,
>
> Pisu si scriptik, ktery muze byt spusten jak s argumenty na prikazove radce
> tak v interaktivnim rezimu. S tim, ze v obou rezimech bude pouzivat ten samy
> set prikazu.
>
> Nevite nekdo jak z optparser dostat set vsech moznych argumentu, jak tech
> co mu zadavam (viz nize), tak I napriklad argumentu –version. Chci I v
> interaktivnim rezimu pouzit set prikazu nadefnovany v optparseru.
>
>
>
>
>
> Cele to definuju nejak takhle:
>
>
>
> from optparse import OptionParser
>
> from optparse import OptionGroup
>
>
>
> class Options(object):
>
>     usage = "usage: %prog [options] [arg]"
>
>     parser = OptionParser(usage, version = programVersion)
>
>     group = OptionGroup(parser, 'To manage local database')
>
>     group.add_option("--db", dest="DB_filename",
>
>                         help="path to DB filename")
>
>     group.add_option("--db-refresh", dest="db_refresh",
> action="store_true",
>
>                         help="gather info from servers and refresh records
> in DB")
>
>     group.add_option("--db-create", dest="DB_filename",
>
>                         help="create new DB")
>
>     group.add_option("--db-commit", dest="db_commit", action="store_true",
>
>                         help="commit info from DB to servers")
>
>     parser.add_option_group(group)
>
>
>
> ….pak pridavam jeste nejake dalsi groupy
>
>
>
>
>
> A ted jak z OptionParser dostanu seznam vsech options?
>
> Kdyz zavolam (options, args) = parser.parse_args() tak dostanu pouze seznam
> destinations.
>
>
>
> Dik,
>
> David
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
------------- dal¹í èást ---------------
HTML p?íloha byla odstran?na...
URL: http://www.py.cz/pipermail/python/attachments/20080621/34736df9/attachment.htm 
------------- dal¹í èást ---------------
Netextová p?íloha byla odstran?na...
Jméno: test.py
Typ: text/x-python
Velikost: 836 bytes
Popis: [žádný popis není k dispozici]
Url : http://www.py.cz/pipermail/python/attachments/20080621/34736df9/attachment.py 


Další informace o konferenci Python