Ferramentas de Utilizador

Ferramentas de Site


dev_geral:python:optionparser

Tabela de Conteúdos

Option parser

Introdução

O Option Parser, é um método presente no módulo optparser, que permite que o utilizador passe flags a um programa, como por exemplo -v ou –verbose.

from optparse import OptionParser
 
arguments_list = OptionParser()
 
arguments_list.add_option("-f", "--file", action = "store", 
type = "string", dest = "file", help = "Path to file.")
 
arguments_list.add_option("-v", "--verbose", action = "store_true", 
dest = "verbose", help = "Verbose mode.")
 
arguments_list.add_option("-nf", "--no_folder", action = "store_false", 
default = True, dest = "folder", help = "Don't create folders)
 
 
(options, extra_stuff) = arguments_list.parse_args()

Este código faz o import da parte do módulo que queremos, e após colocarmos a variável arguments_list a aceitar os métodos do módulo, podemos começar a adicionar os comandos.

O método "add_option", define uma flag, que passará a ser reconhecida pelo programa. Primeiro de tudo, coloca-se o nome da flag (no primeiro caso, "-f" e "–file"), sendo que depois deve-se colocar a acção que o script deve de efectuar (na flag "-f", a acção é "store"). Caso não seja especificada nenhuma acção, esta torna-se "store" por default. Ao colocar a acção "store", deve-se dizer ao programa que tipo de opção ele deve de esperar, sendo que neste caso é uma string (type = "string").

Para além da acção store, existem outras, como o "store_true" e o "store_false". A acção "store_true" guarda o valor True numa variável (que vou explicar um pouco mais à frente), ao passo que a acção "store_false" guarda o valor False.

Por fim, as opções têm de ser guardadas em algum lado, sendo que para isso temos que indicar o seu destino com a opção "dest" (exemplo: dest = "file"). Isso irá neste caso armazenar a informação que é passada a essa flag numa variável chamada "file" (que vou mais abaixo explicar como é que acedem a ela).

Finalmente, podem colocar uma opção help, pois este módulo cria uma flag por default que é a -h ou –help, que imprime no terminal uma ajuda que pode ser personalizada pelo texto que colocarem na opção help.

Após todas as opções definidas, está na altura de fazer com que o programa apanhe as flags. Para isso, usamos o comando arguments_list.parse_args() que irá verificar todas as flag que forem passadas na linha de comandos.

Todas as flags que o programa reconhecer (ou seja, aquelas que foram definidas), ele irá armazenar os seus valores na primeira variável definida (neste caso, é "options"), sendo que todas as outras flags e opções serão guardadas na variável extra_stuff.

Por fim, para aceder à informação que vocês quiserem, é só chamarem a variável que armazenou as flags reconhecidas pelo programa (neste exemplo, "options") juntamente com a opção "dest" que definiram nas flags.

Por exemplo: Escreviam na consola

./programa.py -f /home/rolando/uma/pasta/ficheiro.txt

O programa iria então reconhecer a flag -f e iria colocar o valor /home/rolando/uma/pasta/ficheiro.txt na variável options.file

usage: <yourscript> [[options]] arg1 arg2

options:
  -h, --help            show this help message and exit
  -v, --verbose         make lots of noise [[default]]
  -q, --quiet           be vewwy quiet (I'm hunting wabbits)
  -f FILE, --filename=FILE
                        write output to FILE
  -m MODE, --mode=MODE  interaction mode: novice, intermediate, or
                        expert [[default:|intermediate]]

Ver tambem

dev_geral/python/optionparser.txt · Esta página foi modificada pela última vez em: 2018/05/14 21:37 (Edição externa)