Skip to content

Instantly share code, notes, and snippets.

@zeldani
Last active August 29, 2015 13:56
Show Gist options
  • Save zeldani/9251188 to your computer and use it in GitHub Desktop.
Save zeldani/9251188 to your computer and use it in GitHub Desktop.
#!/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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment