O optparse é uma biblioteca da linguagem Python que permite ao usuário obter ajuda através do comando de linha, ou seja, permite a criação de manuais!!! É possível criar opções curtas ex: "-z" e longas "--zeldani".
Vamos usar o seguinte código:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import optparse | |
import sys | |
parser = optparse.OptionParser() | |
# O add_option adiciona uma opcao, o action='help' mostra as opcoes de ajuda. | |
parser.add_option('-?', action='help', help="Mostra a mensagem de ajuda.") | |
parser.add_option('--esse-eh-um-argumento-mtoooo-longooooooooo', metavar='algumacoisa', help='Exemplo de um argumento longo, que funciona numa boa nos manuais!!', action='help') | |
parser.add_option('-z', '--zeldani', help='Visite: zeldani.blogspot.com ;D', metavar='Zeldani', action='help') | |
parser.add_option("-f", "--file", dest="filename", action="append", | |
help="Exibe o arquivo.", metavar="FILE") | |
#dest = especifica o nome da variavel. | |
#action = fala para o optparse o que fazer quando uma opcao for selecionada. (o append adiciona o argumento na lista) | |
#help = descricao da opcao. | |
#metavar = eh mais uma descricao da opcao. | |
parser.add_option("-q", "--quiet", | |
action="store_false", dest="verbose", default=True, | |
help="Nao imprime mensagens de status para o stdout") | |
#stdout (Standard Output) = eh onde o programa grava os dados de saida. | |
#store_false = eh uma opcao flag, que define a variavel como verdadeiro ou falso. | |
(options, args) = parser.parse_args() # diz ao Optparse para analisar os argumentos. | |
#options = contem os valores de todas as opcoes. | |
#args = eh uma lista de argumentos que os parsers precisam reconhecer. | |
if options.filename: # Se for escolhida a opcao filename, vai ser impresso o arquivo atraves da opcao verbose. | |
for filename in options.filename: | |
if options.verbose: | |
print "Imprimindo o arquivo: ",filename | |
try: | |
f = open(filename) | |
for line in f.readlines(): | |
print line.rstrip() | |
except IOError: | |
print "Arquivo nao encontrado: "+options.filename |
Salve como zeldani.py e para testar o arquivo, você pode usar os seguintes comandos:
$ python zeldani.py -h ou --help
$ python zeldani.py -?
$ python zeldani.py -z ou --zeldani
$ python zeldani.py -h ou --help
$ python zeldani.py -?
$ python zeldani.py -z ou --zeldani
$ python zeldani.py -f /home/zeldani/teste.txt
* Fontes:
http://www.alexonlinux.com/pythons-optparse-for-human-beings
http://docs.python.org/library/optparse.html
http://www.eurion.net/python-snippets/snippet/Show%20optparse.html