[Python] getopt

Alessandro Dentella sandro a e-den.it
Gio 22 Maggio 2008 23:26:33 CEST


On Thu, May 22, 2008 at 09:48:39PM +0200, Paolo wrote:
> Ciao a tutti,
> ho qualche domanda da fare sulla funzione getopt:
> 
> Da riga di comando l'utente può inserire comandi del tipo:
>     prova -p arg1 arg2 arg3 arg4
>     prova -c arg1 arg2
> 
> come posso utilizzare la funzione getopt in modo da ottenere come opzioni -p
> oppure -c e come argomenti gli argomenti relativi al tipo di opzione ?
> Mi spiego meglio con un esempio:
> 
> prova -p 0 /home/paolo/file.txt read
> mi servirebbe avere:     opt = -p
>                                      args = 0 /home/paolo/file.txt read
> args mi serve come array:
> args[0] = 0
> args[1] = /home/paolo/file.txt
> args[3] = read

io mi trovo molto bene con questa ricetta di michele Simionato che usa la
docsctring stessa, opportunamente (ed intuitivamente) formattata sia per
l'help che per la definizione delle opzioni. Così ti trovi sempre
obbligatoriamente l'help corretto

  http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/278844

Credo che l'esempio sia molto chiaro e quello che tu vuoi è facile.

"""An example script invoking optionparse, my wrapper around optparse.

  usage: %prog [options] args
  -p, --positional: print positional arguments
  -1, --option1=OPTION1: print option1
  -2, --option2=OPTION2: print option2
"""

import optionparse
opt, args = optionparse.parse(__doc__)

in args come ovvio trovi gli argomenti, opt è una istanza i cui attributi
sono le opzioni possibili: None se non è definita, OPTION1, OPTION2 etc se
impostata.

sandro


Maggiori informazioni sulla lista Python